如何检查用户是不是从“设置”返回
Posted
技术标签:
【中文标题】如何检查用户是不是从“设置”返回【英文标题】:How to check that user is back from Settings如何检查用户是否从“设置”返回 【发布时间】:2016-09-13 07:29:31 【问题描述】:我正在向我的用户发送本地通知,我想在通知设置按钮上显示相关标题。
如果本地通知关闭,则此标题应为“通知:关闭”,如果本地通知已打开,则此标题应类似于“首选项”。
现在我在 viewDidLoad 和 viewDidAppear 中检查这个,它可以工作。
if UIApplication.sharedApplication().currentUserNotificationSettings()?.types.rawValue == 0
//the first title
else
//the second title
一种情况除外。如果我的用户将手机设置中的通知从“开启”更改为“关闭”,反之亦然,然后他又回来了——标题没有改变(因为这个 viewController 已经加载并且确实出现了)。
如何检查用户是否从设置中返回?
【问题讨论】:
很难理解你的问题,你在说什么设置?您的应用程序中的 vc,或者在设置应用程序中更改设置然后回到您的? 更改手机设置中的设置然后回到我的,是的。 【参考方案1】:当您的应用从非活动状态进入前台时,您可以观察到此通知,每次从后台再次打开您的应用时都会调用选择器:
输入viewDidLoad
:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.reloadData), name: UIApplicationWillEnterForegroundNotification, object: UIApplication.sharedApplication())
输入viewDidDissapear
或deinit
:
NSNotificationCenter.defaultCenter().removeObserver(self)
【讨论】:
【参考方案2】:Swift 5.5:
NotificationCenter.default.addObserver(
self,
selector: #selector(yourFunction),
name: UIApplication.willEnterForegroundNotification,
object: UIApplication.shared
)
还有:
deinit
NotificationCenter.default.removeObserver(self)
【讨论】:
以上是关于如何检查用户是不是从“设置”返回的主要内容,如果未能解决你的问题,请参考以下文章