2013-01-23 7 views

答えて

11

私はこれを使います。 viewDidLoadは、ビューのリソースがロードされるときです。ビューはまだ画面上に描画されていません。したがって、ビューのジオメトリとビジュアルを扱う計算とコードをここに入力するべきではありません。それらはviewWillAppearまたはviewDidAppearメソッドにある必要があります。

ポップオーバー/モーダルビューが表示され、アラートビュー/ actionsheet/uiactivityControllerのビューが表示され、削除された場合

  • を削除した場合もviewWillAppearが

    1. 複数回呼び出すことができます。

    これらの理由から、viewWillAppearには、終了に時間がかかるコードを入れてはいけません。 (少なくともメインスレッドで実行されているコード)。ビューごとに1回だけ実行する必要のあるコードも表示しないでください。

    確かに私は確信していますが、これらは覚えておくのが簡単で、助けてくれることを願っています。

  • 4

    のviewDidLoad:ビューは

    viewWillAppearのロードが終了したことアラートます:ちょうどビューロード

    viewDidLoadランは、あなたが一度しなければならないものです。ビューが表示されるたびにviewWillAppearが呼び出されます。 UILabelテキストの設定のように、viewDidLoadで一度だけ行う必要があることを行う必要があります。ただし、ユーザーが表示するたびにビューの特定の部分を変更することが必要な場合があります。"Now Playing"ビューに移動するたびにiPodアプリケーションが歌詞を先頭にスクロールします。

    しかし、サーバーから物事を読み込んでいるときは、待ち時間について考える必要もあります。すべてのネットワーク通信をviewDidLoadまたはviewWillAppearにパックすると、ユーザーがビューを表示する前に実行され、アプリが短時間停止する可能性があります。何らかの種類のアクティビティインジケータが表示されている未表示のビューを最初に表示することをお勧めします。あなたのネットワークで作業が完了したら、2〜2秒かかるかもしれません(または誰が知っていても失敗するかもしれません)。あなたのデータをビューに取り込むことができます。どのようにこれを行うことができるかに関する良い例は、様々なツイッタークライアントで見ることができます。たとえば、Twitterrificの著者詳細ページを表示すると、ネットワーククエリが完了するまで、ビューには「Loading ...」としか表示されません。

    +0

    良い説明、ちょうど私がここでそれを読む前に:http://stackoverflow.com/questions/1579550/uiviewcontroller-viewdidload-vs-viewwillappear-what-is-the-proper-division-of –

    関連する問題