如果管理員允許我添加一個新評論(我最後一個被刪除),我可以解釋一下在我的情況發生。
在link中有一些東西我認識到我做錯了。
呈現視圖時出現問題,但應用程序在關閉視圖時崩潰。現在,問題是什麼?在我的代碼中,我直接在popToRootViewControllerAnimated:call旁邊呈現視圖。正如你可以在我剛剛粘貼的鏈接中看到的那樣,在展示模態視圖時,iOS5似乎有一些限制。作爲鏈接的總結,你不能讓presentModalViewController:動畫:viewDidLoad中和viewWillAppear中前:完成:
It turns out that iOS guidelines don't want model view controllers to be presented in viewDidLoad or in viewWillAppear
這正是我的錯。如果這件事發生在你身上,你能做什麼?您可以在延遲後呈現模態視圖。因此,而不是使用這樣的:
[[self navigationController] popToRootViewControllerAnimated:NO];
[self presentModalViewController:loginNavController animated:YES];
你應該使用這樣的:
[[self navigationController] popToRootViewControllerAnimated:NO];
double delayInSeconds = 0.5;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self presentModalViewController:loginNavController animated:YES];;
});
(我假設一個performSelector:afterDelay:也適用)...
,並確保delayInSeconds
大足以讓viewDidLoad和viewWillAppear完成。對不起,如果這不是很準確和優雅,但至少它的作品。
問候。
我也有同樣的問題,因爲我認爲:http://stackoverflow.com/questions/11832981/dismissviewcontrolleranimated-crash-at-ios5 – 2012-08-07 15:59:56