2009-06-13 11 views

答えて

10

はい、あなたが考えるよりも簡単です。

dismissModalViewControllerAnimated:が呼び出されると、表示されているビュー(viewWillAppear)が表示され、viewDidAppearメッセージが表示されます。

注意:View Controllerが正しく接続されているか、これらのメッセージが失われているかどうかを確認してください。

+0

ありがとう、私の代表者の署名が間違っていたので、私はそれが終了したときに呼び出されていないと思った。 – Boon

+0

この委任署名はどのように見えるのですか? – AlvinfromDiaspar

+4

私はviewDidAppearとviewDidAppearの両方を実装しました。 modalviewcontrollが(部分的なcurlupスタイルとして)呼び出されると、これらのデリゲートは呼び出されません。何か案は? – AlvinfromDiaspar

5

私は怖いですviewWillAppearとviewDidAppearは必ずしも機能しません。 iPhoneで がそうですが、iPadではそうではありません。 提示されたUIViewControllerがフルスクリーンで表示されない場合(たとえば、フォームシートとして表示される場合)、親ビューはviewWillAppearまたはviewDidAppearライフサイクル関数を受け取りません。残念ながら私が見つけた唯一の方法は、dismissModalViewControllerAnimatedが呼び出されたときに呼び出される独自のデリゲートメッセージを作成することです(参照または通知によるエーテル)

1

ビューの外観メソッドを使用できます。アニメーションの完了後に何かが必要な場合は、[object performSelector:@selector(selector) withObject:anotherObject afterDelay:0]を使用できます。理由は分かりませんが、アクションは現在の実行ループでスケジュールされますが、アニメーションが完了した後にスケジュールされます。

+1

iOS 5以降では、-dismissViewControllerAnimated:completion:を使用し、アニメーションが完了した後に完了ブロックを使用して何かを行います。 –