ios - 如何检查用户是否已从“设置”返回

标签 ios swift uiviewcontroller uilocalnotification

我正在向我的用户发送本地通知,我想在通知设置按钮上显示相关标题。

如果关闭本地通知,则此标题应为“通知:关闭”,如果打开本地通知,则此标题应类似于“首选项”。

现在我正在 viewDidLoad 和 viewDidAppear 中检查它,它有效。

if UIApplication.sharedApplication().currentUserNotificationSettings()?.types.rawValue == 0 {
    //the first title
} else {
    //the second title
}

除了一种情况。如果我的用户在手机设置中将通知从“打开”更改为“关闭”,反之亦然,然后他又回来了——标题没有改变(因为这个 viewController 已经加载并确实出现了)。

我如何检查用户是否已从“设置”返回?

最佳答案

当您的应用程序从非事件状态转到前台时,您可以观察到此通知,每次您的应用程序从后台再次打开时都会调用选择器:

放入viewDidLoad:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.reloadData), name: UIApplicationWillEnterForegroundNotification, object: UIApplication.sharedApplication())

放入viewDidDissapeardeinit:

NSNotificationCenter.defaultCenter().removeObserver(self)

关于ios - 如何检查用户是否已从“设置”返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39464439/

相关文章:

objective-c - iOS 6 - (BOOL) shouldAutorotate 有什么意义?

android - Azure DevOps iOS 和 Android React Native 构建在 Pod 安装和 Gradle 构建步骤上失败

ios - Swift - 根据数组值从 Parse 表加载

ios - 在容器 View 中快速访问和更新 TableView

ios - UIViewController 在纵向模式下空白,但 subview 在横向模式下可见?

ios - autoLayout 和约束问题

iphone - 使用 if 语句隐藏状态栏?

ios - 如何删除UIImage背景颜色并使之透明?

ios - Scrollview 中的两个动态 Stackview

ios - 无法从 UITextField 中删除所有字符