1. ホーム
  2. iphone

[解決済み] viewWillAppear:と-viewDidAppear:の違いは何ですか?

2022-05-17 16:36:18

質問

とはどのような違いがあるのでしょうか? -[UIViewController viewWillAppear:]-[UIViewController viewDidAppear:] ?

どのように解決するのですか?

一般的には、このような感じです。

  1. ViewDidLoad - ビューと一緒に表示されるべきコントロールをビューに追加するときはいつも、すぐに、私はそれを ViewDidLoad メソッドを呼び出します。基本的に、このメソッドは、ビューがメモリに読み込まれるたびに呼び出されます。例えば、私のビューが3つのラベルを持つフォームである場合、私はここにラベルを追加します; ビューはこれらのフォームなしでは決して存在しないでしょう。

  2. ビューウィルアップ : 私は ViewWillAppear を使うのは、通常はフォームのデータを更新するためだけです。ですから、上記の例では、実際にドメインからフォームにデータをロードするためにこれを使用します。作成方法 UIViews の作成はかなりコストがかかるので、できるだけ避けなければなりません。 ViewWillAppear メソッドでこれを行うことはできるだけ避けるべきです。なぜなら、これが呼ばれたとき、iPhone はすでに UIView を表示する準備ができていることを意味し、ここで行う重い操作は、非常に目に見える形でパフォーマンスに影響を与えます(アニメーションの遅延など)。

  3. ViewDidAppear : 最後に、私は ViewDidAppear を使って、例えば上記のフォームのための追加データを取得するためにウェブサービスを呼び出すような、実行に長い時間がかかるものに対して新しいスレッドを開始させています。良い点は、ビューがすでに存在し、ユーザーに表示されているので、データを取得する間、ユーザーに素敵な "Waiting" メッセージを表示することができることです。