1

内presentModalViewを入れ子に私の質問は次のようになります。しかし1差がある、iPhone modal view inside another modal view?Can I push a modal view controller from within another modal view controller?:私のコントローラのiPhone - 別のモーダルビュー

なしUINavigationControllers(私は彼らが呼ばれているもの厥思う)されません。だから、

EXP = [[ExpensesViewController alloc] initWithNibName:@"ExpensesViewController" bundle:nil]; 

    [self presentModalViewController:EXP animated:YES]; 

: - >費用選ば提出し、次のコードが呼び出され

RootView(などなど、カレンダーをチェックし、費用を提出するなどのさまざまなオプション):

だから基本的に私は、この持っています現在、メインビューの上にモーダルビューが1つあります。次に、経費モーダルビューでは、(同様のコードで)モーダルビューを開くボタンを選択できるようにしたいと考えています。

私は上記の2つの質問から、それは次のようになります。私はそれの新しいインスタンスを作成せずのViewControllerを参照する方法を知らないので

[self.view presentModalViewController:Number2 animated:YES]; 

[controllerA presentModalViewController:Number2 animated:YES]; 

ではなく、このようになります。

また、最初のモーダルビューに戻ることができるように2番目のモーダルビューを終了するときには(基本的には、モーダルビューを開いて経費を提出し、その後フォームの一部として選択肢を選択する必要がありますUIの目的で新しいモーダルビューが最適です。選択肢を決定すると、追加の詳細モーダルビューを閉じて経費を提出し、その後はモーダルビューを閉じて経費ビューに戻ります。

ので、代わりの使用:

[self dismissModalViewControllerAnimated:YES]; 

は、それは次のようになります。

[self.view dismissModalViewControllerAnimated:YES]; 

みんなありがとう:)

答えて

1

のみUIViewControllerとサブクラスは、そのモーダルView Controllerを提示することができます。 self.viewUIViewインスタンスであり、全く異なるものです。自分を救うために

は仕事のアロット次の2つのルールに固執する必要があります

  1. のみ存在新しいモーダルビューコントローラをビューコントローラからそのよう:[self presentModal…];
  2. 表示されているビューコントローラからモーダルビューコントローラを外すだけです([self dismiss…];)。

このようにして、各ビューコントローラの所有権と責任を明確に把握できます。また、私が見た方法はほとんどどこでも使用されています。[self.super dismiss…];ビューコントローラを無効にすると、iOS 5が破損します。

+0

ハハは、viewcontrollerクラス内でpresentModalViewController呼び出しを入れ子にして、同じVCクラスからそれらを却下するだけで完璧に動作します。ありがとう:) –

0

ここでデリゲートパターンを使用する必要があります。ルートビューコントローラが最初のビューコントローラを委譲し、最初のビューコントローラが2番目のビューコントローラの代理人になるようにします。

デリゲートメソッドを呼び出すと、自己参照を使用してビューを閉じることができます。

を2番目のビューコントローラで呼び出すと、最初に実装され、[self dismissModalViewControllerAnimated];が呼び出され、最後のビューに達するまで同じように表示されます。

+0

私は非常に代議員に精通していないが、私はそれが動作すると確信しています:) –