从设置打开应用程序时如何检测授权状态是否已更改

时间:2019-02-07 06:53:45

标签: ios swift core-location user-permissions

当用户拒绝位置许可时,我将显示一个弹出窗口。该弹出窗口带有一个按钮,可将用户带到设置。当用户转到设置并允许权限,然后返回到应用程序时;如何刷新我的视图?

enter image description here

2 个答案:

答案 0 :(得分:1)

回到应用程序时,应检查位置许可状态以更新更改:

applicationDidBecomeActive的{​​{1}}中,选中appDelegate.swift

答案 1 :(得分:0)

appDelegate.swift 文件的applicationWillEnterForeground中重新检查位置权限,并使用通知查看器将通知发送到视图控制器

yourViewcontroller.swift

override func viewDidLoad() {
     super.viewDidLoad()
     NotificationCenter.default.addObserver(self, selector: #selector(updateLocationPermission(notfication:)), name: "updateLocation", object: nil)
}

@objc func updateLocationPermission(notfication: NSNotification) {
     print("location updated")
}

AppDelegate.swift

func applicationWillEnterForeground(_ application: UIApplication) {
        let nc = NotificationCenter.default
        nc.post(name: Notification.Name("updateLocation"), object: nil)        
}