我在故事板中有一个导航控制器,目前有两个屏幕。 Screen1包含一个开头徽标和一些按钮,我使用以下方法隐藏了顶部的导航栏:
[[self navigationController] setNavigationBarHidden:YES];
在viewDidLoad
和viewWillAppear:
中(在viewWillAppear
我设置了动画:是,所以当从其他屏幕返回时它会滑落)。
当我去Screen2时,我有:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
在第一个视图控制器的viewWillDisappear
中,当该视图出现在导航堆栈的顶部时,导航栏可以很好地滑动。
问题是,当我点回时,导航栏会在屏幕右侧显示动画,但屏幕2会停留在那里,显示下面的另一个导航栏!
然后我可以再次点击它,它将关闭Screen2并且主屏幕将返回,但这显然不是我想要传递给任何用户的行为!
之前有人遇到过这个问题,或者对可能是罪魁祸首有任何意见?
编辑:我刚发现运行iOS模拟器时出现错误:
2011-11-02 19:29:13.548 TestHTML5[10261:f803] Unbalanced calls to begin/end appearance transitions for <LessonViewController: 0x6c5e960>.
当我单击按钮进入第二个视图(LessonViewController)时会发生这种情况。 希望这可能是解决这个问题的,任何人都知道吗?
答案 0 :(得分:2)
我找到了我的IBActions,其中包含:
SecondViewController *X = [self.storyboard instantiateViewControllerWithIdentifier:@"X"];
[self.navigationController pushViewController:X animated:NO];
每个都导致视图加倍或类似的东西。当我在每个IBAction中评论这两行时,问题就消失了。
感谢@CodaFi帮助我了解这方面的可能性,说实话,这个解决方案对我来说没有意义,甚至认为我可以看到它在这里工作。