我在 Storyboard中有一个导航 Controller ,目前有两个屏幕。 Screen1 包含一个打开 Logo 和一些按钮,我使用以下方法隐藏了顶部的导航栏:
[[self navigationController] setNavigationBarHidden:YES];
在 viewDidLoad
和 viewWillAppear:
中(在 viewWillAppear
中,我将它设置为 animated:YES,因此当从其他位置返回时它会滑落屏幕)。
当我转到 Screen2 时,我有:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
在第一个 View Controller 的 viewWillDisappear
中,当该 View 出现在导航堆栈的顶部时,导航栏会很好地滑入。
问题是,当我向后轻按时,导航栏会在屏幕右侧显示动画,但 Screen2 仍保留在那里,在下方显示另一个导航栏!
然后我可以再次点击返回,它会关闭 Screen2 并返回主屏幕,但这显然不是我想传递给任何用户的行为!
以前有人遇到过这个问题,或者对可能的罪魁祸首有任何看法吗?
编辑:我刚刚发现运行 iOS 模拟器时出现错误:
2011-11-02 19:29:13.548 TestHTML5[10261:f803] Unbalanced calls to begin/end appearance transitions for <LessonViewController: 0x6c5e960>.
当我单击按钮转到第二个 View (LessonViewController) 时会发生这种情况。 希望这可能是解决这个问题的方法,有人知道吗?
最佳答案
我找到了我的 IBAction,其中包含:
SecondViewController *X = [self.storyboard instantiateViewControllerWithIdentifier:@"X"];
[self.navigationController pushViewController:X animated:NO];
在每一个上都导致 View 加倍或类似的东西。当我在每个 IBAction 中注释掉这两行时,问题就消失了。
非常感谢@CodaFi 帮助我解决了这个问题,老实说,这个解决方案对我来说没有意义,即使我认为我可以看到它在这里工作。
关于iphone - 我的导航 Controller 需要在 iOS5 中按两次后退?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974887/