UIViewControllersには、 viewDidLoad、viewWillAppear、viewDidAppearなどのいくつかのメソッドがあります。質問は次のとおりです。「たとえば、ビューの背景色を設定し、インスタンス化し、UILabelの背景色を設定するのに最適な場所はどこですか。または、クラスで@propertyとして設定したオブジェクトなどをインスタンス化しますか?」
ありがとう!
UIViewControllersには、 viewDidLoad、viewWillAppear、viewDidAppearなどのいくつかのメソッドがあります。質問は次のとおりです。「たとえば、ビューの背景色を設定し、インスタンス化し、UILabelの背景色を設定するのに最適な場所はどこですか。または、クラスで@propertyとして設定したオブジェクトなどをインスタンス化しますか?」
ありがとう!
一度にたくさんの質問!
ビューを初めてロードするときはviewDidLoad
、すぐに初期化できるすべてのUI要素にすでにアクセスできるため、ビューを構成したり、クラスのプロパティを設定したりするのに最適な場所です。
ビューがすでにロードされている場合(たとえば、ナビゲーションコントローラーからビューをポップするか、モーダルビューコントローラーを閉じることによって)ビューに戻った場合、はviewDidLoad
呼び出されません。したがって、View Controllerの初期化後に発生した可能性のあることに基づいて、何かを変更する場合(背景、ラベルの追加、ラベルの背景の変更など)は、を使用する必要がありますviewWillAppear
。
viewDidAppear
ビューがすでに表示された後にユーザーが変更を表示できるように、変更をアニメーション化する場合に使用します。
編集:これは、IBまたはストーリーボードを使用する場合に適しています。コードでビューを作成する場合については、CitronEvanescentの回答を参照してください。
プログラムでビューを作成している場合は、このメソッドにプロパティを設定できます。- (void) loadView
このメソッドは、何かが表示される前に1回呼び出されます。
一般的に、のUI要素をインスタンス化し、のUI-(id) init
を更新することを好みますloadView
。
詳細については:建設リファレンスを見る
実行可能なメソッドは、viewDidLoad
または-(id)init
、-(id)initWithNibName
クラスのコンストラクターになります。
viewWillAppear
ビューが表示されるたびに変数が呼び出されるため、変数を何度もインスタンス化したくないため、避ける必要がありviewDidAppear
ます(popまたはtabSwitchから)。これらの2つのメソッドは、再表示時にいくつかの変数値を変更する場合に役立ちます。