iphone - 我的导航 Controller 需要在 iOS5 中按两次后退?

标签 iphone ios uinavigationcontroller navigation uinavigationbar

我在 Storyboard中有一个导航 Controller ,目前有两个屏幕。 Screen1 包含一个打开 Logo 和一些按钮,我使用以下方法隐藏了顶部的导航栏:

[[self navigationController] setNavigationBarHidden:YES];

viewDidLoadviewWillAppear: 中(在 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/

相关文章:

iphone - 如何更改文本字段特定长度的按钮背景?

iphone - 我可以使 UINavigationController 仅在第二级加载,而不是在 Root View Controller 加载

ios - 如何添加观察者来查找导航栏的显示和隐藏

iOS Swift 从普通导航栏过渡到透明栏

iphone - 如何从 Facebook 中退出我的 iOS 应用程序 - 就像真的退出一样。 iOS 设备使用我的应用无法忘记的 Safari cookie

iphone - 将日期插入 SQLite

ios - tabBarItem 使用 setBadgeTextAttributes 只改变颜色但不改变字体

ios - 我不小心从我的 xcode 项目中删除了一个文件夹,它去了哪里?

iphone - 如何使用来 self 的 iOS 应用程序的指示打开苹果 map 应用程序

objective-c - 有没有一种简单的方法可以禁止框架中的某些方法?