0

这似乎是一个愚蠢的问题,但我似乎无法解决它。

我的用户单击位于应用程序主屏幕上的图标,该图标执行模态转场,打开一个视图。从这里,用户可以单击另一个按钮,将他们推送到详细视图。这是踢球者:一旦我的用户进入详细视图并尝试单击另一个按钮,我就会收到错误消息:

“开始/结束外观转换的不平衡呼叫。”

我假设这是由于原始模态之上分层的segues数量。简而言之,流程就是:Modal,Push,Push。在第三次推送中,上述“错误”出现在控制台中。

我怎样才能解决这个问题?这是发生错误的segue/代码:

.m

- (IBAction)purchasebuttonpressed:(id)sender
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_1" bundle:nil];
    StrainDetailViewController *yourViewController = (StrainDetailViewController *)[storyboard instantiateViewControllerWithIdentifier:@"DispensaryViewController"];

    [self.navigationController pushViewController:yourViewController animated:YES];



}
4

1 回答 1

1

如果我了解您的应用程序结构以及您要执行的操作,我认为您需要将控制器的排列更改为:

HomeViewController (the window's root view controller)
     |
     | modal segue to:
     |
NavigationController whose root view controller is ViewController
     |
     | push to :
     |
TableViewController
     |
     | push to:
     |
DetailViewController

另一种方法是,如果 HomeViewController 类似于启动屏幕或欢迎屏幕,我更喜欢的方法是让导航控制器成为窗口的根视图控制器。在导航控制器的根视图控制器(在您的情况下为 ViewController)中,从没有动画的 viewDidAppear 方法中以模态方式呈现 HomeViewController,因此它将是用户看到的第一件事。当用户想要继续前进时,关闭 HomeViewController,您将在 ViewController 中,并且 HomeViewController 将被释放。您需要将逻辑放入该 viewDidAppear 方法中,以便 HomeViewController 的呈现仅在第一次调用 viewDidAppear 时发生。

于 2013-08-06T16:06:28.043 回答