私の目標は、承認ステータスをUNUserNotificationCenter
(アプリが再びアクティブになる/フォアグラウンドに入るとき)にチェックし、情報に基づいてUISwitch
をオンまたはオフにすることです。アプリケーションがアクティブになった後、レイアウトの更新が遅くなる
この機能は動作してすぐに起動しますが、UISwitchは更新に3-5秒かかります。それを更新するより良い方法はありますか?
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(checkNotificationSettings), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
}
func checkNotificationSettings() {
self.center.getNotificationSettings { (settings) in
switch settings.authorizationStatus {
case .authorized:
self.notificationSwitch.isOn = true
case .notDetermined, .denied:
self.notificationSwitch.isOn = false
}
}
}