我的导航控制器需要在iOS5中按两次?

时间:2011-11-02 01:35:50

标签: iphone ios uinavigationcontroller navigation uinavigationbar

我在故事板中有一个导航控制器,目前有两个屏幕。 Screen1包含一个开头徽标和一些按钮,我使用以下方法隐藏了顶部的导航栏:

[[self navigationController] setNavigationBarHidden:YES];

viewDidLoadviewWillAppear:中(在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)时会发生这种情况。 希望这可能是解决这个问题的,任何人都知道吗?

1 个答案:

答案 0 :(得分:2)

我找到了我的IBActions,其中包含:

SecondViewController *X = [self.storyboard instantiateViewControllerWithIdentifier:@"X"];
[self.navigationController pushViewController:X animated:NO];

每个都导致视图加倍或类似的东西。当我在每个IBAction中评论这两行时,问题就消失了。

感谢@CodaFi帮助我了解这方面的可能性,说实话,这个解决方案对我来说没有意义,甚至认为我可以看到它在这里工作。