1

dismissModalViewControllerAnimatedが消えたことを検出する独自のメカニズムを実装する方法はありますか?viewdiddisappearを試しましたが、サブビューがビューから削除されたときにのみ呼び出されると思うので、これは呼び出されていません。モーダルの場合、iOSはそれらを異なる方法で処理すると思います。

何か案は?

このモーダルビューが却下された後、代理人に何らかのアクションを実行してもらいたいと思います。

ありがとう。

4

4 に答える 4

1

ビューコントローラを閉じる前に、NSNotificationCenterを使用して通知を投稿します。他のViewControllerをオブザーバーとして追加します。これは、イベントをブロードキャストする簡単な方法です。

したがって、却下する前に:

[[NSNotificationCenter defaultCenter] postNotificationName:@"DismissModalViewController" 
                                                    object:nil];

[self dismissModalViewControllerAnimated:YES];

そして、ViewControllerで

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(yourCallback)
                                             name:@"DismissModalViewController" 
                                           object:nil];

コールバックは次のようになります。

- (void) yourCallback
{
    // some code to run when modal view controller is dismissed
}
于 2012-07-16T14:13:20.460 に答える
0

直前に呼び出されるデリゲートメソッドを追加しますdismissModalViewController

于 2012-07-16T14:13:16.763 に答える
0

親ViewControllerのを使用できますviewWillAppear。親ビューコントローラとは、presentViewController(またはpresentModalViewController)の受信者を意味します

于 2012-07-16T14:14:45.463 に答える
0

問題を見つけました。

この呼び出しを行ったViewControllerで、代理人を設定するのを忘れました。

于 2012-07-16T14:15:16.757 に答える