ViewController-> ModalViewController1---horizontalflip ---> ModalViewController2
したがって、MVC2で「完了」に触れて自分自身を却下すると、MVC1でデリゲートメソッドが呼び出され、いくつかの処理を実行してから自分自身を却下します。
問題は、MVC2を閉じるアニメーションが完了する前に、この「もの」がすでに実行されていることです。アニメーションがいつ完了したかを確認してから、MVC1を閉じたいのですが。
ViewController-> ModalViewController1---horizontalflip ---> ModalViewController2
したがって、MVC2で「完了」に触れて自分自身を却下すると、MVC1でデリゲートメソッドが呼び出され、いくつかの処理を実行してから自分自身を却下します。
問題は、MVC2を閉じるアニメーションが完了する前に、この「もの」がすでに実行されていることです。アニメーションがいつ完了したかを確認してから、MVC1を閉じたいのですが。
MVC2のアニメーションが完了すると、MVC1はviewDidAppearを受信するはずです。すでに実行しているデリゲート呼び出しによって設定された条件に基づいて、そこで「処理」を実行できます。
これを実現するには、デリゲートを使用できるはずです。
MVC2.hの場合
@protocal MVC2Delegate <NSObject>
@optional
- (void) doneShowing;
@end
MVC2.mでは、[完了]をタップして、アクション内でdoneShowingを呼び出すと、IBActionメソッドを実装できます。
MVC1では、このデリゲートメソッドを実装し、その中でやりたいことを何でも実行できます。最後に、[self dismissViewControllerAnimated:<#(BOOL)#> completion:<#^(void)completion#>]