“非平衡呼叫开始/结束外观转换”?

问题描述:

这看起来像这样一个愚蠢的问题,但我似乎无法整理出来。“非平衡呼叫开始/结束外观转换”?

我的用户点击位于应用程序主屏幕上的图标,图标执行模态选择,打开一个视图。从这里,用户可以点击另一个按钮,将其推送到详细视图。这里是踢球者:一旦我的用户在细节视图,并尝试点击另一个按钮,我得到的错误:

“不平衡调用开始/结束外观转换。”

我假设它是由于原始模态的分层数量过多所致。总之,这个过程是:模态,推,推。在第三次推动中,上面的“错误”出现在控制台中。

我该如何解决这个问题?下面是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]; 



} 
+0

您是否还附加了一个按钮,其操作方法为purchasebuttonpressed:?你把它称为一个继续,但然后你做手动推。 – rdelmar

+0

对不起,不是segue。只是推一下。这个代码存在于我的XIB文件中(它是一个DetailView)。该按钮“推”到我的StoryBoard上的一个视图。 –

+0

控制器层次结构中的哪个部分是导航控制器? – rdelmar

如果我理解你的应用程序结构,以及你想要做什么,我想你需要改变安排控制器的这样:

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

另一种方式来做到这一点的方式,以及我喜欢,如果HomeViewController就像是一个启动屏幕或欢迎屏幕 - 的东西,你不需要回来看见的第一后它,就是制作导航离子控制器窗口的根视图控制器。在导航控制器的根视图控制器(你的情况下,视图控制器),从viewDidAppear方法模态地呈现HomeViewController没有动画,所以它将是用户看到的第一件事。当用户想要继续时,关闭HomeViewController,并且您将在ViewController中,并且HomeViewController将被释放。您需要将逻辑放在viewDidAppear方法中,以便HomeViewController的显示仅在第一次调用viewDidAppear时发生。