我有基於導航的應用程序。我已經創建了應用一個UINavigationController
didFinishLaunchingWithOptions
委託方法是這樣的:導航欄後退按鈕,崩潰的應用程序
self.initialviewcontroller = [[InitialViewController alloc] initWithNibName:@"InitialViewController" bundle:nil];
UINavigationController *myNavController = [[UINavigationController alloc] initWithRootViewController:self.initialviewcontroller];
self.window.rootViewController = myNavController;
[self.window makeKeyAndVisible];
在InitialViewController
我有一個按鈕,其將導航到SecondViewController
。因此,在按鈕的動作我推SecondViewController
如下:
if(self.secondView != nil)
self.secondView = nil;
self.secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self.navigationController pushViewController:self.secondView animated:YES];
現狀:導航工作正常,我能夠InitialViewController
之間導航到SecondViewController
。當我在SecondViewController
並按下設備的主頁按鈕時,應用程序進入後臺,當我重新打開應用程序時,它會從關閉它的位置打開應用程序(即SecondViewController)。現在,如果我按下後退按鈕轉到InitialViewController,該應用程序崩潰。
它在ios模擬器中工作正常,但設備上發生崩潰。
我不明白我所做的錯誤是什麼?
這裏是我的錯誤代碼
異常類型:EXC_BAD_ACCESS(SIGSEGV) 異常代碼:KERN_INVALID_ADDRESS在0x654b495d 墜毀主題:0
主題0名:調度隊列:com.apple.main線程
發送給我們錯誤的文本。 –
另外,當你的筆尖與你的視圖控制器名稱相同時,你可以使用'[[SecondViewController alloc] init];'它將默認爲同名的筆尖。 –
我認爲問題是,當應用程序在後臺輸入系統正在釋放'InitialViewController'實例,以確保您可以在'InitialViewController'類的'dealloc'方法中添加'NSLog()'調用 – tkanzakic