检测何时按下“返回应用程序”

时间:2015-09-17 17:44:07

标签: ios swift permissions core-location

我已创建了一个函数,该函数假设处理具有位置的权限,因此如果应用程序没有位置权限,该应用程序将关闭。但是,当您按下打开设置并在状态栏中按“返回应用程序”时,determeinePermission方法不会再次执行。我已尝试将其添加到viewDidLoadviewDidAppearviewWillAppear。我该怎么办?

func determinePermission() {
    switch CLLocationManager.authorizationStatus() {

    case .Authorized:
        if CLLocationManager.locationServicesEnabled() {
            manager.delegate = self
            manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
            manager.startUpdatingLocation()
        }


    case .NotDetermined:
        manager.requestWhenInUseAuthorization()
    case .AuthorizedWhenInUse, .Restricted, .Denied:
        let alertController = UIAlertController(
            title: "Background Location Access Disabled",
            message: "In order to be notified about adorable kittens near you, please open this app's settings and set location access to 'Always'.",
            preferredStyle: .Alert)

        let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { (action) in
            exit(0)
        }
        alertController.addAction(cancelAction)

        let openAction = UIAlertAction(title: "Open Settings", style: .Default) { (action) in
            if let url = NSURL(string:UIApplicationOpenSettingsURLString) {
                UIApplication.sharedApplication().openURL(url)
            }
        }
        alertController.addAction(openAction)

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

1 个答案:

答案 0 :(得分:6)

尝试将其添加到UIApplicationDelegate.applicationDidBecomeActive