我正在向用户发送本地通知,并且我想在通知设置按钮上显示相关标题。
如果本地通知已关闭,则此标题应为“通知:关闭”,如果启用了本地通知,则此标题应为“首选项”。
现在我在viewDidLoad和viewDidAppear中检查它,它可以工作。
if UIApplication.sharedApplication().currentUserNotificationSettings()?.types.rawValue == 0 {
//the first title
} else {
//the second title
}
除一例外。如果我的用户正在将电话设置中的通知从“打开”更改为“关闭”,反之亦然,之后他又回来了 - 标题没有改变(因为这个viewController已经加载并且确实出现了)。
如何从“设置”中检查用户是否已返回?
答案 0 :(得分:2)
当您的应用从非活动状态进入前台时,您可以观察此通知,每次从后台再次打开应用时,都会调用选择器:
加入viewDidLoad
:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.reloadData), name: UIApplicationWillEnterForegroundNotification, object: UIApplication.sharedApplication())
加入viewDidDissapear
或deinit
:
NSNotificationCenter.defaultCenter().removeObserver(self)