所以我有一个具有文本字段的地图搜索功能。我在那里设置了一个UIAlertController,它工作正常,即当附近没有位置时它会发出警报。
我有一个当前位置按钮,但我想仅在用户允许打开当前位置状态时才执行操作。否则,我想显示提醒。这就是我的错误所在。令人沮丧的是,我在访问未被授予时有一个print语句,它显示了该语句,并完全跳过警报。我尝试删除语句,只是警报出现而按钮中没有任何其他代码......仍然没有。这是怎么回事?
@IBAction func currentLocationBtn(sender: UIBarButtonItem) {
checkLocationAuthorizationStatus()
if self.locationAuthorized {
locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.currentLocation = CLLocation(latitude: locationManager.location.coordinate.latitude, longitude: locationManager.location.coordinate.longitude)
} else {
println("Current Location is disabled")
let alertController = UIAlertController(title: "Current Location Turned Off", message:
"Sorry, you need to turn on Current Location to use this feature", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default,handler: nil))
}
}
答案 0 :(得分:1)
您正在设置警报控制器并添加“撤消”操作 - 但您实际上并未提供任何内容。与任何其他UIViewController
一样,您需要提供UIAlertController
才能显示它。
假设您在视图控制器中工作,执行此操作的一种方法是在添加操作后立即调用以下内容:
self.presentViewController(alertController, animated: true, completion: nil)