當我運行我的應用程序在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