0

A、B、C という 3 つのビュー コントローラーがあります。このビューを次のようにナビゲートしています。

A -提示中-> B -提示中-> C -提示中-> B

そしてBから、私が却下した場合、Cに移動したいと思います。しかし、その代わりに、今はAに移動しています。CからBへのナビゲーションに、dismiss を使用できません(いくつかの内部問題)。では、どうすればこれを修正できますか?助けてください。

4

2 に答える 2

1

の制限に達しましたdismissModalViewController:すべてのモーダル ビューが削除されます ( source ):

複数のビュー コントローラーを連続して提示し、提示されたビュー コントローラーのスタックを構築する場合、スタック内の下位にあるビュー コントローラーでこのメソッドを呼び出すと、その直接の子ビュー コントローラーと、スタック上のその子の上にあるすべてのビュー コントローラーが破棄されます。これが発生すると、最上位のビューのみがアニメーション形式で閉じられます。中間のView Controllerはスタックから単純に削除されます。最上位のビューは、そのモーダル遷移スタイルを使用して閉じられます。これは、スタック内の下位にある他のビュー コントローラーで使用されるスタイルとは異なる場合があります。

あなたができることはUINavigationController、要件に応じてコントローラーを使用して、単にコントローラーをプッシュ/ポップすることです。

または、トップビューを直接呼び出しaddSubviewて、それらが画面全体をカバーし、管理コントローラーが正しく保持/解放されていることを確認することにより、さまざまなコントローラーによって管理されているビューを表示することもできます (追加/削除すると、ビューは自動的に表示されます)。それを別のビューに)。

ヒントとして、次のようにすることができます。

  1. あなたが持っているところでpresentModal...、使用してくださいaddSubview

  2. あなたが持っているところでdismiss...、使用してくださいremoveFromSuperview

  3. ここで提案するように、ビューを管理するView Controllerへの参照をretain/strongプロパティに保存します。

于 2012-07-24T08:47:27.773 に答える
0

こんにちは、「C」viewcontrollerで以下のコードを使用してください

[[[self presentingViewController] presentingViewController] dismissModalViewControllerAnimated:YES];
于 2012-10-27T18:38:31.267 に答える