iPhone-アニメーションの終わりを検出します
-
02-10-2019 - |
質問
モーダルビューのアニメーションの終わりを検出するには(解雇するとき)? (私は自分で作成されていないmfmailcomposeviewcontrollerについて話している...)
ありがとう
解決
モーダルビューコントローラーには -viewDidDisappear:
画面からビューが削除されるたびに自動的に呼び出される方法。この方法をModal Viewコントローラーでオーバーライドして、好きなことをすることができます。
また、実装を検討することもできます -viewDidAppear:
モーダルビューによって表示されるビューが消えるビューコントローラー内のメソッド。
他のヒント
mfmailcomposeviewcontrollerをサブクラス化して、それをオーバーロードできます -viewDidDisappear:
.
@interface MyCtrler : MFMailComposeViewController
@end
@implementation MyCtrler
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
// do anything you like
}
@end
モーダルビューを却下した後、モーダルビューが実際になくなったことが確信している場合にのみ、何かをする必要がありました(完全にdealloc-ed)。だから、Modal Viewのviewdiddisappearとその友人たちは私には時期尚早でした。
私が見つけた最も簡単なのは、NSTIMERでコードを遅らせることでした。モーダルビューが代表者を呼び出し、デリゲートがモーダルビューを削除することを呼び出すと、モーダルビューがなくなったときに実行されるコードをキューアップします。タイミングは300msまたは400msのようなものでした。 (どこかから実際のタイミングを取得する方法はありますか?)
通常、アニメーションが完了したときに通知されると、送信してデリゲートを設定します SetanimationDelegate: uiviewクラスに。
VCが使用されて却下されたとき [someVC dismissModalViewControllerAnimated:YES]
アニメーションデリゲートを設定することはできませんが、代わりに送信してVCのビューの独自のアニメーションを実行する場合 できる デリゲートを設定し、アニメーションが完了したら通知されます。