[英]Ios: How can I make my app go back to root view when App goes Inactive
[英]How to read settings bundle when I go back to App?
我在設置包中創建了“ updateheading”
如果用戶離開應用程序,請轉到設置以更改值,當用戶返回應用程序時,locationManager應基於更新后的值啟動/停止。
但是該應用程序無法運行viewWillAppear。 如何讀取更新值?
private let locationManager : CLLocationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.requestWhenInUseAuthorization()
locationManager.delegate = self
}
override func viewWillAppear(_ animated: Bool) {
let userDefault = UserDefaults.standard
let updateheading = userDefault.object(forKey: "updateheading") as! Bool
if(updateheading){
locationManager.startUpdatingHeading()
}else{
locationManager.stopUpdatingHeading()
}
}
View Controller對應用程序狀態不響應。 這是AppDelegate的責任。 但是您可以訂閱通知。
var observer: Any?
override func viewWillAppear(_ animated: Bool) {
super.viewDidAppear(animated)
observer = NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationDidBecomeActive, object: nil, queue: .main) { (_) in
doUpdate()
}
doUpdate()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
observber = nil
}
doUpdate是您當前的代碼。
PS: “如果重寫viewWillAppear,則必須在實現中的某個時刻調用super。” (c)蘋果文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.