【Swift4】アプリがフォアグラウンドになったらバッチの件数を0にしたい

研究
Skyler Ewing at Pexels
この記事は約2分で読めます。

慣れないうちはコメントはきちんと入れておくこと、と言うお話。

【Swift】ViewControllerでアプリがバックグラウンド/フォアグラウンドになったことを検知する方法 – mzgkworks

アプリがバックグラウンド/フォアグラウンドになった際に、UIViewControllerで何か処理したい時のやり方。 何もしないとUIViewControllerでは検知できない。 AppDelegateで検知したタイミングで、NSNotificationCenterを使って通知を投げる。 @UIApplicationMain class AppDelegate : UIResponder, UIApplicationDelegate { var window : UIWindow? func applicationDidEnterBackground(application: UIApplication) { NSNotificationCenter.defaultCenter().postNotificationName(“applicationDidEnterBackground”, object: nil) } func applicationWillEnterForeground(application: UIApplication) { NSNotificationCenter.defaultCenter().postNotificationName(“applicationWillEnterForeground”, object: nil) } ViewController側では、NSNotificationCenterを使って受信する通知を登録しておく。 selector: ViewController内で呼ぶメソッド名(任意の名前) name: AppDelegateで設定した通知の名前 selectorのメソッド名の後ろに「:(コロン)」を忘れないこと override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) NSNotificationCenter.defaultCenter().addObserver(self, selector: “viewWillEnterForeground:”, name: “applicationWillEnterForeground”, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: “viewDidEnterBackground:”, name: “applicationDidEnterBackground”, object: nil) } selectorで設定した メソッド を用意して、行いたい処理を記述する。 func viewWillEnterForeground(notification: NSNotification?)

まずバックグラウンド、フォアグラウンドの判別はappDelegateで行う。

func applicationDidEnterBackground(application: UIApplication) {
	// アプリがバックグラウンドへ移行するタイミングを通知
}
func applicationWillEnterForeground(application: UIApplication) {
	// アプリがフォアグラウンドへ移行するタイミングを通知
}

applicationWillEnterForegroundのメソッドで

[swift4] アプリのアイコンについたバッチを0にする方法 | BlueBear I/O

これをすればいいので、今回は

func applicationWillEnterForeground(application: UIApplication) {
	// アプリがフォアグラウンドへ移行するタイミングを通知
	UIApplication.shared.applicationIconBadgeNumber = 0
}

こうします。

コメント

タイトルとURLをコピーしました