2012-02-22 2 views
0

My rootviewcontroller в моем приложении для iPad представляет собой modal viewcontroller через [self presentModalViewController:... animated:YES] (позволяет называть его ViewControllerA).Устранение 2 модальных диалогов сразу?

В какой-то момент сам ViewControllerA представляет MFMailComposeViewController через [self presentModalViewController:... animated:YES].

В деле делегат mailComposeController:didFinishWithResult:error: Я хочу отклонить ОБА контроллеров, MFMailComposeViewController AND ViewControllerA.

Но независимо от того, что я пытаюсь ([self.parentViewController dismissModalViewControllerAnimated:YES], [self dismissModalViewControllerAnimated:YES], вызывая увольнение дважды), ТОЛЬКО MFMailComposeViewController уволен, но ViewControllerA остается видимым.

Я уже нашел это сообщение (http://stackoverflow.com/questions/3229755/dismissing-multiple-modal-view-controllers-at-once) и этот пост (http://stackoverflow.com/questions/ 3105855/how-to-move-to-first-viewcontroller-from-last-view-controller-среди-multiple-vie), но предлагаемые решения, похоже, не работают для меня.

Что я делаю неправильно?

+0

Вы пробовали уволить без анимации? – coverback

+0

Без изменений, исчезает только почтовый диалог. – user826955

ответ

1

У меня была такая же проблема, отбрасывая несколько модальных просмотров.
Возможно, вы получаете предупреждение:

Попытка отклонить от вида контроллера во время презентации или отклонить в ходе

Решение отклонить первый взгляд без анимации, а затем отклонить другой один. Последнюю можно убрать с помощью анимации, нет проблем.

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{ 
    switch (result) { 
     case MFMailComposeResultSent: 
      [self dismissModalViewControllerAnimated:NO]; 

      if (![[self modalViewController] isBeingDismissed]) 
       [self dismissModalViewControllerAnimated:YES]; 
     default: 
      break;  
    } 
} 
Смежные вопросы