【问题标题】: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,或者在设置应用程序中更改设置然后回到您的?
  • 更改手机设置中的设置然后回到我的,是的。

标签: ios swift uiviewcontroller uilocalnotification


【解决方案1】:

当您的应用从非活动状态进入前台时,您可以观察到此通知,每次从后台再次打开您的应用时都会调用选择器:

输入viewDidLoad:

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

输入viewDidDissapeardeinit

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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多