【发布时间】:2013-10-14 16:54:45
【问题描述】:
当点击顶部栏上的“返回”按钮时,我有这行代码可以弹回根菜单:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController popToRootViewControllerAnimated:YES];
}
我到现在都没有这个问题,我仍然使用IOS 5.1作为目标。
当我现在运行此代码(XCODE 5)时,我收到以下消息:
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
...它似乎只将顶部栏中的文本弹出回根(菜单),而显示只弹出一个级别。由于这一直有效,我有点困惑,想得到一些如何解决这个问题的建议。我执行这段代码的视图控制器是一个普通的视图控制器。
我使用[self performSegueWithIdentifier:@"xxxxx" sender:self];来推送 ViewControllers。
只是为了测试我使用了这个代码:
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.navigationController popToRootViewControllerAnimated:YES];
}
...它确实弹出了 VC,然后直接弹出回 rootVC 没有消息???
这是结构,它来自绿色 VC,我在回到第一个 VC 时遇到问题。同样,我在 xcode5 之前没有遇到过这个问题:
【问题讨论】:
-
它可能在
viewDidDisappear工作。 -
尝试在弹出到根视图控制器后调用
[super viewWillDisappear:animated];,或者根本不调用它,好像一个转换正在进行中,另一个可能不会启动。 -
我已经尝试了这两个答案,“viewDidDisappear”会在当时将其弹回一级,而不是直接弹出到根目录。 @Yas Kuraishi 不叫超级,或者之后做,没有区别。奇怪的是它在 Xcode 5 之前确实有效 :-(
-
您是先使用上一个过渡吗?我的意思是在调用它之前你是弹出还是关闭模态视图控制器?
-
@Lefteris 不,我正在通过 segue 使用“推送”。
标签: objective-c ios5