2012-04-11 5 views
2

からModalViewControllerを閉じ:MainViewControllerで私は、関数呼び出しに問題が持っているサブビュー

[self dismissModalViewControllerAnimated:YES]; 

を、私はイメージピッカーを起動し、キャンセルボタンをクリックすることでいつものように却下することができます。代わりに、主にそれを指示、それを起動するの

(IBAction) LaunchInMain:(id)sender{ 

    MainAppDelegate *app = (MainAppDelegate *)[[UIApplication sharedApplication] delegate]; 

    //elcPicker is a customized image picker 
    [app.viewController presentModalViewController:elcPicker animated:YES]; 
    [elcPicker release]; 
    [albumController release]; 

- (void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

は今、私が最初にサブビューを追加し、同じ起動方法を使用してサブビューからイメージピッカーを起動します。

問題:

イメージピッカーを却下することができないとサブビューを再び表示することはできません。だから、画面は私が何をクリックしても画像ピッカーに残ります。

私は成功しなかったようないくつかの他の呼び出しにしようとしている:

[self dismissModalViewControllerAnimated:YES]; 

私は任意のヘルプやアイデアには満足しています。より多くの情報を提供する必要があると思われる場合は、コードを追加することができます。

+1

あなたは本当に自分のelcPickerですか?試してみてください[elcPicker dismissModalViewControllerAnimated:YES]; –

答えて

3

[app.viewController dismissModalViewControllerAnimated:YES];

を試してみてもよい。この情報がお役に立てば幸いです。

+0

はい、私の回避策はあなたが提案したものと非常によく似ています。基本的には、私は同じコントローラを却下するだけです。ありがとう – LKS

+0

+1素晴らしい答え:] –

2

これはあなたのために働く可能性があります

[self.view dismissModalViewControllerAnimated:YES]; 
0

あなたはUISplitViewControllerからモーダルビューを提示している場合、これは動作します。それはまた...ので、他の多くの方法で適用することができる

まず、その後、あなたのviewDidLoadまたは同等の方法でこれを入れて、あなたのappDelegateのためのあなたの.hファイルで(AppDelegate_iPad *appDelegate)のインスタンスを作成します。

ipadDelegate = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; 

、このような最初のモーダルビューを提示:

YOURVC *vc = [[YOURVC alloc] initWithNibName:@"YOURVC" bundle:nil]; 
    [ipadDelegate.splitViewController presentModalViewController:vc animated:YES]; 
    [vc release]; 

はあなたのUITableViewのように、サブビューを持っていると言う、とdidSelectRowAtIndexPathからモーダルを却下します。あなたがサブビューを使用してモーダルを却下しなければならないすべては、(必要な場合)あなたのサブビューの.hの内部で別のipadDelegateインスタンスを作成し、再び[[のUIApplication sharedApplication]デリゲート]を参照し、却下されています

[ipadAppDelegate.splitViewController dismissModalViewControllerAnimated:YES]; 

基本的には、長年にわたり、appDelegateのコントローラーを使用して、presentingViewControllerへの永続的な参照を維持する必要がある場合は、モーダルを表示および非表示にしてください。上のすべての事柄は私の場合は機能しません。

ipadDelegateでプレゼンテーションを行っている場合は、MainWindow_iPad.xibでプレゼンテーションのモードを確認してください。あなたの「トランジションスタイル」は「カバリング垂直」で、「プレゼンテーション」は「現在のコンテキスト」である必要があります。

関連する問題