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

How to detect if Authorisation Status changed when application is opened from Settings

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

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

当您返回应用程序时,您应该检查位置权限状态以更新更改:

applicationDidBecomeActiveappDelegate.swift,勾选CLLocationManager.authorizationStatus()