Я показываю всплывающее окно, когда пользователь отказывает в разрешении на местоположение. У этого всплывающего окна есть кнопка, чтобы перейти к настройкам. Когда пользователь заходит в настройки и разрешает разрешение, а затем возвращается в приложение; Как я могу обновить свой взгляд?
NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActiveNotification(notification:)), имя: UIApplication.didBecomeActiveNotification, объект: nil)
Спасибо @SPatel за помощь





Перепроверьте разрешение на местоположение в applicationWillEnterForeground в файле appDelegate.swift и отправьте уведомление на ваш контроллер представления с помощью наблюдателя уведомлений.
вашViewcontroller.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)
}
Я не думаю, что это сработает, потому что он / она хочет войти в событие переднего плана
@SPatel, когда он / она вернется из настройки в приложение, в это время вызовите applicationWillEnterForeground
Когда пользователь вернется в приложение, вызовите «applicationWillEnterForeground» и «applicationDidBecomeActive», но первый вызов метода «applicationWillEnterForeground», поэтому написанный код в этом методе
Нет необходимости запускать пользовательское уведомление от appDelegate В iOS встроено событие UIApplication.willEnterForegroundNotification.
Когда вы вернетесь в приложение, вы должны проверить статус разрешения местоположения, чтобы обновить изменение:
В applicationDidBecomeActive в appDelegate.swift проверьте CLLocationManager.authorizationStatus()
использовать центр уведомлений