当我运行我的应用程序在iOS 7事情按预期工作。当我在上运行我的应用程序时,iOS 8的东西不是按预期工作。这完全没有对代码库进行单一编辑。iOS 8 pushViewController无法正常工作,在iOS 7中,一切按预期工作,零代码更改?
具体来说,我试图“推”一个新的视图控制器在堆栈和在iOS 8没有任何反应。 < - 这是错误,没有任何反应。没有崩溃,只是没有。
起初,我想这可能是故事情节相关,并经由performSegueWithIdentifier
触发我推SEGUE所以切换到手动刚刚从故事板使用instantiateViewControllerWithIdentifier
加载它,然后通过[self.navigationController pushViewController:myVC animated:YES];
呈现它。
上述任何一种技术都适用于iOS 7. 但是,在iOS 8设备上运行我的应用程序时,这两种方法都失败了。。此外,我注意到调试器/ NSLog中的奇怪行为。在iOS系统7,当我运行NSLog(@"self.navigationController = %@", self.navigationController)
我得到(预期):
self.navigationController = <UINavigationController: 0x145986b0>
在iOS系统中8,我也得到(预期):
self.navigationController = <UINavigationController: 0x15d646db0>
同时,在同一点在代码中,当我插入一个中断,然后通过控制台查看事件时,可以这样做:(lldb) po self.navigationController
在iOS 7中,我得到(如预期):
(lldb) po self.navigationController <UINavigationController: 0x175810b0>
然而,在iOS 8的,我得到:
(lldb) po self.navigationController error: property 'navigationController' not found on object of type 'PHMenuTableViewController *' error: 1 errors parsing expression
在上面的两个例子po
我与我的 “调试” 建立配置建设。
最终,我只是试图推视图控制器。我原来的代码是使用segue。在尝试调试时,我从赛格移开使用instantiateViewControllerWithIdentifier
和[self.navigationController pushViewController:myVC animated:YES];
。按预期,这两种方法都可以在iOS 7上运行然而,无论我做什么,我都无法在iOS 8上工作,没有任何反应,就好像导航控制器是nil
或者什么也不是!
任何想法?
你有没有试过NSLog应该出现的VC的'viewDidLoad'?它被解雇了吗? – r4id4 2014-09-26 14:49:43
@ObiWanKeNerd刚刚在'viewDidLoad'中添加了一个中断。在iOS 8上运行'viewDidLoad'时*不会*被调用。 – 2014-09-26 14:53:16
您是否尝试过使用第一个方法'performseguewithidentifier',但是使用'modal segue'而不是'push segue'?只是为了看看是否存在与应该呈现的“导航控制器”或“viewController”相关的问题。你有没有办法“准备继续”?你有尝试在那里插入休息吗? – r4id4 2014-09-26 15:23:46