2011-11-15 10 views
0

初めてモーダルビューコントローラを表示しようとするときに問題が発生するので、ちょっとテストメソッドを開始して、提示し、終了して表示しますもう一度同じコントローラをモーダルにします。同じモーダルビューを一度閉じた後に表示する方法

// This is just test Code. 
MYViewController *vc = [[MYViewController alloc] init]; 
[self presentModalViewController:vc animated:YES]; 
[self dismissModalViewControllerAnimated:YES]; 
[self presentModalViewController:vc animated:YES]; 

私はエラーを取得する:

2011-11-15 09:50:42.678 Proyecto3[1260:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <RootViewController: 0x6d9d090>.' 

ドキュメントはここに任意の手掛かりを追加しません。

答えて

0

あなたのコードには[self dismissModalViewControllerAnimated:YES]; は、modalViewControllerには何もしません。ここで、 "self"は、modalViewController "vc"を提示しようとしているviewControllerです。あなたが既に提示されているmodalViewControllerを表示しています。

このviewControllerのmodalViewController vcをここではvcにすることができます。それがアニメ化されている間あなたは存在しない/ビューコントローラを消すことができます

+0

しかし、それはドキュメントの反対である: "dismissModalViewControllerAnimated: 受信者によって提示されたモーダルビューコントローラを閉じる"。また、「View Controllerプログラミングガイド」では、親コントローラからモーダルビューコントローラをこのようにして閉じます。 –

0

は、私は、これは

MYViewController *vc = [[MYViewController alloc] init]; 
[self presentModalViewController:vc animated:NO]; 
[self dismissModalViewControllerAnimated:NO]; 
[self presentModalViewController:vc animated:YES]; 

をうまくいくと思うしかし、私は本当にすべてのあなたが却下する理由、それを行う理由、および再表示されませんすでに表示されているモーダルビューコントローラを表示しますか?

+0

これは私のアプリで何が間違っているかを確認するためのテストコードです。私はそれを却下した後にもう一度modalViewControllerを提示しようとしています。それは再び表示されません。私の未回答の投稿を参照してください:http://stackoverflow.com/questions/8076211/what-c​​an-make-presentmodalviewcontroller-not-ending-in-viewwillappear-being-call –

1

@デビッドは、MYViewControllerインスタンス変数を作成し、このようにそれを初期化する:doneまたはcancelボタンであってもよいMYViewControllerを却下-コーディネイトするためのプロトコルを作成

if (myInstance==nil) 
    //create instance of MYViewController 
    //myInstance.delegate=self 
//present modal VC 

MYViewControllerで。ボタンアクションの呼び出しで

done 
    { 
     if([delegate respondsToSelector:@selector(willDismissModalView)]) 
     { 
      [delegate willDismissModalView]; 
     } 
    } 

のような、あなたのVCのwillDismissModalView方法でいくつかのことはMYViewControllerを解任します。あなたはそれを 'n'回行うことができますこの方法。

+0

これは私のアプリでこれを行う方法です(これは単なるテストですコード)。私の未回答の投稿を参照してください:http://stackoverflow.com/questions/8076211/what-c​​an-make-presentmodalviewcontroller-not-ending-in-viewwillappear-being-call –

関連する問題