0

私は3のアプリを持っていますUIViewContoller

UIViewContollerA
UIViewContollerB
UIViewContollerC

UIViewContollerAで開くUIViewContollerBpresentModalViewController UIViewContollerB開くUIViewContollerCpresentModalViewController

UIViewContollerCそして、ボタンを1回クリックするだけで、すべてのThe UIViewControllerを閉じることができるようにしたいと考えています。

2 回電話をかけようとしdismissModalViewControllerAnimatedましたが、うまくいきません。他に方法はありますか? それが可能だ?

4

5 に答える 5

0

もちろん、呼び出しdismissModalViewControllerAnimatedは機能しません。異なるビュー コントローラーで呼び出されることを意図しています。ドキュメントから:

受信者によって提示されたView Controllerを閉じます

そのため、コントローラーを破棄する要求を最初のコントローラーに逆方向に渡すために、コントローラー間の委任を設定する必要があります。

それを念頭に置いて:

  1. あなたがやろうとしていることは何でも、おそらくもっと良い方法があります。モーダル コントローラーは、互いの上に表示されることを意図していませんでした。
  2. 非推奨のメソッドを使用しています。代わり にpresentViewControllerandを使用dismissViewController
于 2013-05-12T14:10:18.130 に答える
0

これを行うには、モーダルスタックをバックアップする一連の呼び出しをチェーンする必要があるでしょう。

ただし、View Controller のスタックがある場合、UINavigationController は、これらの View Controller を最初に提示し、それらを一度に破棄するためのより簡単なソリューションである可能性があります。

于 2013-05-12T14:07:04.050 に答える
-2

あなたが試すことができるのは、で使用dismissModalViewControllerAnimatedすることanimated:NOです。一番上のものとanimated:YES下のコントローラー。

それとも、rootController で Dismiss を呼び出すだけでうまくいったのでしょうか?

于 2013-05-12T14:00:16.517 に答える