iOSアプリのさまざま状態を監視して、マッチしたときに通知できる「NSNotificationCenter」。
わざわざdelegateメソッドを使わなくてもいいから便利です。
よく使うのは以下の監視状態。
- UIApplicationDidFinishLaunchingNotification : アプリケーションが起動した直後
- UIApplicationWillEnterForegroundNotification : アプリケーションがアクティブになる直前
- UIApplicationDidBecomeActiveNotification : アプリケーションがアクティブになった時
- UIApplicationDidEnterBackgroundNotification : アプリケーションがバックグラウンドに入る時
- UIApplicationWillResignActiveNotification : アプリケーションがアクティブじゃなくなる直前
- UIApplicationWillChangeStatusBarFrameNotification : ステータスバーのサイズ変更される直前
- UIApplicationDidChangeStatusBarFrameNotification : ステータスバーのサイズ変更が発生した時
- UIApplicationWillChangeStatusBarOrientationNotification : デバイスの向きが変わる直前
- UIApplicationDidChangeStatusBarOrientationNotification : デバイスの向きが変わった時
- UIApplicationDidReceiveMemoryWarningNotification : メモリ不足の警告発生時
- UIApplicationWillTerminateNotification : アプリケーションが終了される直前
こんな感じでviewDidLoadあたりに書きましょう。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethodName) name:UIApplicationDidBecomeActiveNotification object:nil];
NSNotificationCenterに登録したら、監視を外す処理も忘れずに。
忘れちゃうと、selectorに設定したメソッドが複数回呼ばれたりします。
- (void)viewWillDisappear:(BOOL)animated { // 省略 // 監視を外す [[NSNotificationCenter defaultCenter] removeObserver:self]; }