Я искал решение моей проблемы, но ничего не нашел.ОтклонитьModalViewController then popViewController
У меня есть UINavigationController со стеком UIViewControllers (все это в TabbarController, если это актуально). На последнем ViewController, я хочу, чтобы отправить по электронной почте:
MFMailComposeViewController *emailVC = [[MFMailComposeViewController alloc] init];
// fill out emailVC properties ...
[self presentModalViewController:emailVC animated:YES];
Затем в делегате после электронной почты была отправлена, я хочу, чтобы закрыть электронную ViewController, а также палить последний ViewController в стеке NavigationController:
-(void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error
{
// save some variables here ...
[self dismissModalViewControllerAnimated:YES]; // This line works by itself
[self.navigationController popViewControllerAnimated:NO]; // this line causes EXC_BAD_ACCESS
Однако последняя строка вызывает сбой где-то. Я проверил стек ViewController до и после. Последний viewController правильно удаляется из списка.
Любые мысли или предложения приветствуются. Проблема может лежать где-то еще в моем коде, я хочу убедиться, что у меня есть эта часть в порядке. Спасибо.
Да, это работает! Огромное спасибо. Вы знаете, почему это работает? – janeway
На самом деле, у меня была такая проблема до этого и решена так. Я боюсь, что я не знаю, почему это работает, у меня просто была эта идея, она протестировала ее, и это сработало. Я думаю, что увольнение этого модального представления должно быть полностью выполнено, чтобы поддерживать правильный стек viewController, позволяя поп-функции функционировать должным образом. Всякий раз, когда я сталкиваюсь с вещами, которые кажутся странными и которые должны функционировать в связи с анимированными задачами UIKit, но не работают, я стараюсь так. – Till
Это обычно не работает в iOS 5, потому что self.navigationController имеет значение null для модального управления представлением :( – Adam