在UINavigationController上以编程方式使用动画NO执行多个弹出和推送操作时出现问题。 (仅限iOS7 iPhone)
源代码 https://github.com/abhishek9284/NavigationBarTest
要了解问题,请考虑以下视图树。
(我在我的应用程序中使用UITableViewController)
右键单击并选择在新选项卡中打开图像以查看大图像。
错误信息
右键单击并选择在新选项卡中打开图像以查看大图像。
执行以下导航时出现错误/问题。
在上面的步骤2和3中弹出并以编程方式完成动画NO,这使得UINavigationBar后退按钮和标题非常奇怪。
注意:上述问题仅出现在iOS 7&在iOS 6中完美运行。
答案 0 :(得分:3)
★☆★已解决★☆★
问题原因
在 中执行推送或弹出 - (void)viewDidAppear:(BOOL)动画 方法会导致导航堆不稳定。
<强>解决方案强>
为推送或弹出相关进程创建单独的方法,并从另一个视图控制器调用该方法(避免push或pop inside - (void)viewDidAppear:(BOOL)animated)
推送操作后调用方法 [self.navigationController.view layoutSubviews]; ,用于显示子视图。
答案 1 :(得分:1)
为了技术准确性,即使它确实有效,也不应直接调用 layoutSubviews 。查看Apple文档以获取更多信息。