Если администратор позволяет мне добавить новый комментарий (мой последний был удален), я могу объяснить, что происходило в моем случае.
В этой ссылке есть что-то, что я понимаю, что делал неправильно.
Проблема возникает при представлении представления, однако происходит сбой приложения при его отклонении. Теперь, в чем проблема? В моем коде я представлял представление рядом с вызовом popToRootViewControllerAnimated :. Как вы можете видеть в ссылке, которую я только что вставил, iOS5, похоже, имеет некоторые ограничения при представлении модальных представлений. В качестве резюме ссылки, вы не можете сделать presentModalViewController: animated: before viewDidLoad и viewWillAppear: закончились:
Оказывается, руководящие принципы iOS не хотят, чтобы контроллеры представления модели были представлены в viewDidLoad или 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];;
});
(я полагаю, executeSelector: afterDelay: также работает) ...
и убедитесь, что delayInSeconds
достаточно большой, чтобы завершить viewDidLoad и viewWillAppear. Извините, если это не очень точно и элегантно, но, по крайней мере, это работает.
С уважением.