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];
}

この記事を書いた人

kubou

kubou

2049, inc.
web業界で生活しています。
お仕事の割合はディレクション:8、開発:2くらい。