92

viewDidLoadとの違いは何viewDidAppearですか?これらの関数にはどのような初期化またはカスタムコードが入りますか?

たとえば、に存在し、上presentModalViewControllerに存在しない場合にのみ機能します。viewDidAppearviewDidLoad

4

2 に答える 2

154

viewDidLoadView Controllerが最初にメモリにロードされるときに、一度だけ呼び出されます。これは、インスタンス変数をインスタンス化し、このビュー コントローラーのライフサイクル全体にわたって存在するビューを構築する場所です。ただし、通常、ビューはこの時点ではまだ表示されていません。

viewDidAppearビューが実際に表示されるときに呼び出され、ビュー コントローラーのライフサイクル中に複数回呼び出すことができます (たとえば、モーダル ビュー コントローラーが閉じられ、ビューが再び表示される場合)。これは、レイアウト アクションを実行したり、UI で描画したりする場所です。たとえば、モーダル ビュー コントローラーを表示します。ただし、ここで行うことはすべて再現可能でなければなりません。ビューが消えたときにそれらを解放しないと、メモリ リークが発生する可能性があります。

参照: https://developer.apple.com/documentation/uikit/uiviewcontroller

于 2012-06-29T00:37:52.613 に答える
22

簡単に言うと、で任意のコントロールまたは配列を作成する必要がありますviewDidLoad。ここで、のように、viewDidAppearこれらのコントロールまたは配列を更新する必要があります。

viewDidLoadコントローラが作成さviewDidAppearれるたびに呼び出され、ビューが表示されるたびに呼び出されます。DIDが表示されます。したがって、提示するモーダルビューがあるとすると、そのビューが閉じviewDidAppearられると、呼び出され、呼び出さviewDidLoadれなくなります。

于 2012-06-29T00:30:43.767 に答える