2011-01-05 2 views
8

アプリを終了するときに特定のViewControllerがアクティブだった場合に、私のアプリがマルチタスクiOSでうまく動作しないことを知りました。 このビューコントローラは、最新の情報を表示するために最新の情報を収集する必要があります。これまでのところ、この情報を収集するための初期化コードは、viewWillAppearにのみ配置されていました。UIApplicationWillEnterForegroundNotificationとviewWillAppear - 初期化のためのパターン?

今、viewWillAppearは、ビューがバックグラウンドで表示されるときに呼び出されないことを学びました。

アプリがバックグラウンドに送信されてから世界が変更されている可能性があるため、ビューコントローラーを再初期化する必要があります。 UIApplicationWillEnterForegroundNotificationに登録することができます。しかし、この特定のviewControllerに現在ナビゲートしているかどうかにかかわらず、アプリケーションがフォアグラウンドに戻るたびに発生します。

UIApplicationWillEnterForegroundNotificationを使用する方法は、ViewControllerが「すぐに表示されます」という意味でアクティブな場合にのみ使用できますか?

答えて

7

viewWillAppear:を登録し、viewWillDisappear:で登録解除してください。そうすれば、ビューが実際に表示されたときにのみ通知を受けることができます。

+0

これは明らかに正しいと思います。私はそれがそのように動作することを確認した。どうもありがとうございました。 – Miriam