3

ユーザーが生成したコンテンツを含むいくつかのタブを持つタブ バーを備えたアプリがあります。各ビュー コントローラーが読み込まれると、viewDidLoad メソッドがサーバーに HTTP リクエストを送信してデータを取得し、それに応じてそのビューにデータを入力します。ただし、すべてのデータがロードされると、ビューは同じままです (View Controller がアンロードされて再ロードされない限り)。

ユーザー生成コンテンツを使用する他の多くのアプリも同様の動作をしますが、アプリがバックグラウンドに移行してから再びフォアグラウンドに戻ると、各ビューがリロードされます。つまり、アプリがアクティブなときにユーザーがさまざまなタブを切り替えても、コンテンツは自動的に更新されません。ユーザーがアプリを「終了」し、後でアプリに戻ると、ビューが再読み込みされます。

このように動作するようにアプリを設計するための標準的な方法はありますか? 具体的には、アプリの「再起動」に関するビューを更新するために利用できる UIKit の機能があるかどうか疑問に思っています。

それ以外の場合、簡単な方法は、viewDidLoad で各ビュー コントローラーを通知用に登録し、アプリがフォアグラウンドに入るのをリッスンすることだと思います。その後、コントローラーはデータをリロードすることで各通知に応答できます。

4

1 に答える 1

5

各ViewControllerで、通知をサブスクライブし、そのUIApplicationDidBecomeActiveNotification通知を受信したときに呼び出されるメソッドを実装する必要があります。この方法ではリロードが実行されますが、データをリロードする必要があるのは、ここで回答できる範囲を超えています。これが私がそれを行う方法であり、私がそれを行うことをお勧めする方法です。

于 2010-09-14T19:38:40.290 に答える