【发布时间】:2019-03-09 16:42:23
【问题描述】:
我正在使用CLLocationManager 类的实例方法requestWhenInUseAuthorization() 强制在用户第一次出现Cancel 后再次出现警告消息Turn On Location Services to Allow "myApp" to Determine Your Location,但警告消息没有出现第二次。谁能解释我的代码哪里出错了?谢谢。
我在UITableViewController 的一个自定义子类中有以下代码;
if (CLLocationManager.locationServicesEnabled() == false) || (CLLocationManager.authorizationStatus() != .authorizedWhenInUse)
{
self.navigationController!.popViewController(animated: true)
}
这应该强制UITableViewController 的另一个自定义子类的前一个实例在下面的viewDidAppear() 方法中再次显示其视图;
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
// prompts user to turn on location services
locationManager.requestWhenInUseAuthorization()
}
但它不会导致第二次向用户显示警报消息。 UITableViewController 的两个自定义子类实例都嵌入在我的故事板文件中的 UINavigationController 实例中。
【问题讨论】:
-
警报显示一次。之后,您需要编写特定于应用程序的代码,检查并提醒用户更改
Settings中的内容(如果他们愿意)。
标签: ios swift location-services