web-dev-qa-db-ja.com

viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappearのガイドライン

これらの方法を正しい方法で使用するためのガイドラインはありますか?特に、その中で使用できるコードの種類を知りたいです。

たとえば、WSからデータを取得するメソッドを呼び出す必要がある場合、どこで呼び出す必要がありますか? NSNotificationはどこで登録/登録解除できますか?等.

20
Lorenzo B

から IViewController

viewWillAppear:

このメソッドは、レシーバーのビューが画面に表示される前、およびビューを表示するためのアニメーションが構成される前に呼び出されます。このメソッドをオーバーライドして、ビューの表示に関連するカスタムタスクを実行できます。たとえば、このメソッドを使用してステータスバーの方向またはスタイルを変更し、表示されているビューの方向またはスタイルと調整することができます。このメソッドをオーバーライドする場合は、実装のある時点でsuperを呼び出す必要があります。

viewWillDisappear:

このメソッドは、ビューがウィンドウから削除されたり、別のビューで覆われたりした場合に呼び出されます。このメソッドは、ビューが実際に削除またはカバーされる前、およびアニメーションが構成される前に呼び出されます。

サブクラスはこのメソッドをオーバーライドし、それを使用して編集の変更をコミットしたり、ビューのファーストレスポンダーステータスを辞任したり、その他の関連タスクを実行したりできます。たとえば、このメソッドを使用して、ビューが最初に表示されたときにviewDidDisappear:メソッドで行われたステータスバーの方向またはスタイルへの変更を元に戻すことができます。このメソッドをオーバーライドする場合は、実装のある時点でsuperを呼び出す必要があります。

viewDidAppear:

このメソッドをオーバーライドして、ビューの表示に関連する追加のタスクを実行できます。このメソッドをオーバーライドする場合は、実装のある時点でsuperを呼び出す必要があります。

viewDidDisappear:

このメソッドをオーバーライドして、ビューの非表示または非表示に関連する追加のタスクを実行できます。このメソッドをオーバーライドする場合は、実装のある時点でsuperを呼び出す必要があります。

詳細については、チェックすることができます iOS用のView Controllerプログラミングガイド

31
Manlio

答えへの追加:実装の最初にsuper viewWillAppear:のようなメソッドを呼び出し、メソッドの最後にviewDidAppear:を呼び出す必要があります。スーパークラスは初期化から開始し、最後に終了する必要があります。

4