思考の軌跡 試行の足跡

iOSアプリのコーディングメモやデザインについて、マーケティング、読んだ書籍、気になるニュースに関して書き綴るブログです。

【Xcode,iOS,Objective-C】バッジ実装の方法メモ

まず、通知のアクセス許可の設定が必要です。

if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerForRemoteNotifications)]) {

[[UIApplication sharedApplication] registerForRemoteNotifications];
UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];

} else {

UIRemoteNotificationType types =UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert| UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:types];
}

参考:
http://qiita.com/hkomo746/items/22fcecfd0773023ed56a


そして、バッジの数を操作する方法です。
[UIApplication sharedApplication].applicationIconBadgeNumber = 1;

どのタイミングでバッジ数を操作するか、主なライフサイクルメソッドは下記の通りです。

applicationWillResignActive:アプリケーションがアクティブでなくなる直前に呼ばれる

applicationDidEnterBackground: アプリケーションがバックグラウンドになったら呼ばれる

applicationWillEnterForeground: アプリケーションがバックグラウンドから復帰する直前に呼ばれる

applicationDidBecomeActive: アプリケーションがアクティブになったら呼ばれる

applicationWillTerminate: バックグラウンド実行中にアプリが終了された場合に呼ばれます。ただしアプリがサスペンド状態の場合アプリを終了してもこのメソッドは呼ばれません。

参考:
http://crunchtimer.jp/blog/technology/ios/374/