按下导航栏按钮时UIAlertController没有显示,虽然控制台指示活动?

时间:2015-07-19 06:57:52

标签: swift uialertcontroller

所以我有一个具有文本字段的地图搜索功能。我在那里设置了一个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))
        }


    }

1 个答案:

答案 0 :(得分:1)

您正在设置警报控制器并添加“撤消”操作 - 但您实际上并未提供任何内容。与任何其他UIViewController一样,您需要提供UIAlertController才能显示它。

假设您在视图控制器中工作,执行此操作的一种方法是在添加操作后立即调用以下内容:

self.presentViewController(alertController, animated: true, completion: nil)