“非平衡呼叫开始/结束外观转换”?
问题描述:
这看起来像这样一个愚蠢的问题,但我似乎无法整理出来。“非平衡呼叫开始/结束外观转换”?
我的用户点击位于应用程序主屏幕上的图标,图标执行模态选择,打开一个视图。从这里,用户可以点击另一个按钮,将其推送到详细视图。这里是踢球者:一旦我的用户在细节视图,并尝试点击另一个按钮,我得到的错误:
“不平衡调用开始/结束外观转换。”
我假设它是由于原始模态的分层数量过多所致。总之,这个过程是:模态,推,推。在第三次推动中,上面的“错误”出现在控制台中。
我该如何解决这个问题?下面是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];
}
答
如果我理解你的应用程序结构,以及你想要做什么,我想你需要改变安排控制器的这样:
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时发生。
您是否还附加了一个按钮,其操作方法为purchasebuttonpressed:?你把它称为一个继续,但然后你做手动推。 – rdelmar
对不起,不是segue。只是推一下。这个代码存在于我的XIB文件中(它是一个DetailView)。该按钮“推”到我的StoryBoard上的一个视图。 –
控制器层次结构中的哪个部分是导航控制器? – rdelmar