5

私はUINavigationController自分のアプリで作業しています。ではviewDidLoad、ルート ビュー コントローラーがインターネットから情報を取得し、解析して表示します。

で別のビューに移動しUINavigationControllerてからルートに戻るとUIViewController、コントローラの情報が再ロードされません。viewDidLoadこれは、それが呼び出されていないと私に思わせます。

でルート ビュー コントローラがポップバックされたときに、この情報が確実に再ロードされるようにするには、どのような方法を使用すればよいUINavigationControllerですか?

編集:

迅速な対応をありがとう、それは多くのことを意味します。あなたの答えに関するもう 1 つの質問:viewWillAppearまたはviewDidAppear? それぞれに長所/短所はありますか?

4

4 に答える 4

9

ビューが画面に表示される前または後にリロードを実行するかどうかに応じて、viewWillAppear:またはを処理する必要があります。ビューが読み込まれるときに一度だけ呼び出されます。viewDidAppear:viewDidLoad

于 2012-06-21T14:32:18.460 に答える
1

を使用する必要があります。ビューが初めて読み込まれた後にのみ呼び出されますviewDidAppearviewDidLoad

ここでこれについて確認してください:

UIView プログラミングガイド

于 2012-06-21T14:31:59.267 に答える
1

そして、あなたは正しいです、それは呼び出されていません。あなたがそれに行くたびにそれを呼びたいならUIViewController(あなたはあなたの中にそれを持っています)それをorUINavigationControllerの上に置いてください。viewDidAppearviewWillAppear


viewWillAppear前に起こりviewDidAppearます。速度を上げるためにviewDidAppear、セカンダリ スレッドで非同期に実行するので、UI スレッドの速度が低下することはありません。データが取得されたら、ビューを更新します。

于 2012-06-21T14:32:20.820 に答える
1

viewDidLoadビュー コントローラが最初に作成されたとき、またはビュー コントローラが非表示でアプリケーションがメモリ警告を受け取ったためにアンロードされた場合にのみ呼び出されます。代わりに、UI を実装viewWillAppear:またはviewDidAppear:更新することができます。

于 2012-06-21T14:34:57.683 に答える