2012-03-05 13 views
13

私のUIViewControllerは、自分のモデルコンポーネントがコンテンツのダウンロードを完了したときに送信する通知のために登録します。アプリがバックグラウンドに移動したときに自動的に呼び出されるUIViewControllerメソッドはありますか?

ダウンロードはバックグラウンドで(beginBackgroundTaskWithExpirationHandler:を使用して)行うことができますので、ダウンロードがバックグラウンドで完了すると、GUIが再描画を試みることはありません。

私は2つの選択肢があると思います - 1)モデルはバックグラウンド/フォアグラウンドでいつ通知し、通知を発しません。 2)UIViewControllerは、バックグラウンドでの通知の登録を解除します。

オプション2)が好ましい。

UIViewControllerには、アプリがバックグラウンドに入るときに常に呼び出されるメソッドがありますか?または、UIViewControllerは、アプリがバックグラウンドに移行したときに通知イベントを受け取るために登録する必要がありますか?

(背景にするときアプリが動く呼び出されませんなどviewWillUnloadviewWillDisappearようだ?)

答えて

21

view did loadUIApplicationDidEnterBackgroundNotificationのためのあなたのビューコントローラのレジスタを作る...関連したセレクタメソッドが前に呼び出されます背景を入力する。

+2

+1しかし、起床時にUIを更新するのは難しいかもしれません。あなたのアプリがバックグラウンドになると、iOSデバイスはスクリーンショットをキャプチャし、このスクリーンショットを表示します。つまり、 ' - (void)applicationDidBecomeActive:(UIApplication *)アプリケーション'でUIを更新すると、前の画面が表示され、UIを変更したものにisntantly変更されます。 – Sam

関連する問題