2012-03-27 1 views
3

私はコントローラー間の通信にうまくいかないので、NSUserDefaultsから多くの設定とチェックが必要です。何か問題が発生する可能性がありますか?私の初期化とセットアップのほとんどは、viewDidLoadではなくviewWillAppearを使用できますか?

+0

viewDidLoadで長いプロセスを実行すると、一定期間アプリケーションが応答しなくなります。これがテーブルビュー間で発生すると、テーブルセルが強調表示された状態でアプリが停止し、ユーザーにとって大きな不満が生じます。 –

答えて

3

ビューの読み込みのフォームの開始から終了までの間に何をするかによって異なります。

パフォーマンスに影響を与える可能性があるため、viewWillAppear(ビューを表示する準備ができたら呼び出されます)では、あまり多くのことをしたくありません。通常、テーブルをリフレッシュする、ラベル上のテキストを更新するなどの操作を行いたい場合は、ビューがロードされた後にviewDidLoadメソッドが呼び出されます。ボタン、ラベルなどの項目を追加するのが一般的です景色。実行に時間がかかるタスクがある場合は、ビューが既にロードされているのでviewDidAppearでタスクを実行する方が良いです。別のスレッドでこれらのメソッドを実行するか、作業が完了するまで何らかの種類のアクティビティインジケータをユーザーに提供することをお勧めします。

+0

これは、viewDidLayoutSubviews無限ループのバグを解決するのに役立ちました。ありがとう。私はちょうどviewWillAppearに私の最小限のセットアップコードを入れました。 – vaticRite

0

viewDidLoadがビューの読み込み後に一度呼び出されることを忘れないでください。 ビューが表示されると、viewWillAppearが呼び出されます。この情報を使用して、配置することができます。

詳細hereをご覧ください。

関連する問題