2

ストーリーボードに2つのUIViewControllerがあります。最初のものは、遷移タイプが「PartialCurl」のIB定義の「モーダル」スタイルのUIStoryboardSegueを介して2番目のものにセグエします。

これは期待どおりに機能します。

UIModalTransitionStylePartialCurlが完了したら、最初のviewControllerを構成するためのアクションを実行したいと思います。-prepareForSegue:sender:メソッドがありますが、これはカールの開始時に呼び出されますが、カールを終了するときには呼び出されません

はい、両方のView Controllerをサブクラス化し、このメソッドをオーバーライドしてこれを確認しました。

私の理論では、特定のセグエ、またはおそらくすべてのモーダルセグエは異なる方法で機能します。たぶん、それらはすべての「モーダル」ビューコントローラーのライフサイクルと並行していますか?

その場合は、おそらく「willPresentModalViewController」や「didPresentModalViewController」の通知またはデリゲートメソッドのようなものがありますが、それについての言及は見つかりません

だから、私の質問は、モーダルビューコントローラーが却下されていることをどのように通知することができますか?

4

1 に答える 1

0

iOS 5 以降、メソッド presentViewController: または DismissViewControllerAnimated: で利用可能な完了ブロックを使用できます。

[self presentViewController:(UIViewController *) animated:(BOOL) completion:{
    //called after the view controller is presented
}]

[self dismissViewControllerAnimated:(BOOL) completion:^{
    //called after the view controller is dismissed
}];

完了ブロックは、「didPresentModalViewController」または「didDismissModalViewController」と同様に動作します。

「willPresentModalViewController」または「willDismissModalViewController」の場合、上記のメソッドを呼び出す前にコードを配置できます。

于 2013-05-30T13:21:48.513 に答える