Как определить, изменился ли статус авторизации при открытии приложения из настроек - PullRequest
0 голосов
/ 07 февраля 2019

Я показываю всплывающее окно, когда пользователь отказывает в разрешении на местоположение.У этого всплывающего окна есть кнопка для перехода пользователя к настройкам.Когда пользователь заходит в настройки и разрешает разрешение, а затем возвращается в приложение;Как я могу обновить свой вид?

enter image description here

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Когда вы возвращаетесь к приложению, вы должны проверить статус разрешения местоположения, чтобы обновить изменение:

В applicationDidBecomeActive в appDelegate.swift, отметьте CLLocationManager.authorizationStatus()

0 голосов
/ 07 февраля 2019

Перепроверьте разрешение местоположения в applicationWillEnterForeground в файле appDelegate.swift и отправьте уведомление контроллеру представления с помощью наблюдателя уведомлений

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