1

新しいスレッドを開始しています...ほぼ同じ質問です..私はさまざまな投稿やフォーラムから得ているすべてを試しました...私にとってはうまくいきませんでした..

私がやりたいのは...

[self presentModalViewController:ViewControllerA animated:YES];//Working fine
//Inside viewControllerA call viewControllerB
[self presentModalViewController:ViewControllerB animated:YES];//Working fine
//Dismiss both the Controllers. and present View

C

私は試した。

  1. ViewControllerBを提示する前にviewControllerAを閉じる//Cを直接表示する
  2. viewControllerBでviewControllerAを閉じる//結果はありません。// DismissViewControllerはすべてのスタックを却下する必要がありますが、私には機能しないので、試しました
  3. viewControllerBで両方のviewContrllerを閉じる//それでもviewContrllerAが表示されます

OMG...それは紛らわしいです..

4

2 に答える 2

1

あなたのコードは不明確です(selfおそらく異なるものを参照しているときに2回使用しています)。私はあなたがしたいことは(事実上)これだと思います:

[viewController presentModalViewController:viewControllerA animated:YES];
// time passes...
[viewControllerA presentModalViewController:viewControllerB animated:YES];
// time passes
... do something to dismiss both controllers ...

あなたはこのようなもので運がいいかもしれません:

[viewControllerA dismissModalViewController:NO];
[viewController dismissModalViewController:NO];

「in」または「inside」の意味がわかりません。どのクラスに「所属」しているかは関係ありません。しかし、一般的に、ビューコントローラはその子に対して責任があります。通常、親は自分自身を子の代理人として設定します。子が「完了」すると、親にメッセージを送信します。親は子供を解雇する責任があります。UIKitのパッケージ済みビューコントローラー(UIImagePickerController / MFMailComposeViewController / MFMessageComposeViewController)はすべてこのパターンに従います。

于 2010-09-26T17:40:16.593 に答える
0

Here is what I did.. not a good solution but works for now.. :)

///ViewDidLoad [self presentModalViewController:ViewControllerA animated:YES];//Working fine

//inside ViewController A [self dismissModalViewControllerAnimated:NO];

//ViewWillAppear [self presentModalViewController:ViewControllerB animated:YES];//Working fine

//inside ViewController B [self dismissModalViewControllerAnimated:NO];

于 2011-03-01T18:38:29.947 に答える