2012-02-22 5 views
0

私のiPadアプリの私のrootviewcontrollerは、[self presentModalViewController:... animated:YES](これをViewControllerAと呼ぶことができます)を通してモーダルのviewcontrollerを表示します。2つのモーダルダイアログをまとめて終了しますか?

ある時点で、ViewControllerA自体は[self presentModalViewController:... animated:YES]を介してMFMailComposeViewControllerを提示します。

デリゲートメソッドmailComposeController:didFinishWithResult:error:では、コントローラーのうち、両方のコントローラーであるMFMailComposeViewControllerとViewControllerAを破棄したいと考えています。

でも、何を試しても([self.parentViewController dismissModalViewControllerAnimated:YES][self dismissModalViewControllerAnimated:YES]、2回呼び出す)、MFMailComposeViewControllerだけが終了しますが、ViewControllerAは表示されたままです。

私はすでにこの投稿(http://stackoverflow.com/questions/3229755/dismissing-multiple-modal-view-controllers-at-once)とこの投稿(http://stackoverflow.com/questions/)を見つけました。 3105855 /複数ビューの中の最後のビューコントローラから最初のビューコントローラへの移動方法)がありますが、提案された解決策は私には役に立たないようです。

私は間違っていますか?

+0

アニメーションなしで解雇を試みましたか? – coverback

+0

変更しないと、メールダイアログのみが消えます。 – user826955

答えて

1

私は同じ問題が複数のモーダルビューを却下していました。
は、おそらくあなたは警告なっている:ビューコントローラから解任プレゼンテーション中または却下する

試みを進行中である

ソリューションがアニメーションすることなく、第1のビューを却下し、他を却下することです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;  
    } 
} 
関連する問題