2016-05-16 3 views
1

abgelehnt habe Ich versuche Location Service App zu machen, und ich habe den folgenden Code, wenn der Benutzer zu diesem View Controller geht er eine Warnung erhalten den aktuellen Standort.Woher weiß ich, wenn Benutzer die Location Services in Swift 2

Dies ist der Code

override func viewDidLoad() { 
     super.viewDidLoad() 
// 1. status is not determined 
     if CLLocationManager.authorizationStatus() == .NotDetermined { 
      locationManager.requestAlwaysAuthorization() 
     } 
      // 2. authorization were denied 
     else if CLLocationManager.authorizationStatus() == .Denied { 



      SwiftSpinner.hide() 
      let alert = UIAlertController(title: "Error with Your Location" , message: "Location services were previously denied. Please enable location services for this app in Settings.", preferredStyle: UIAlertControllerStyle.Alert) 
      let ok = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { 
       UIAlertAction in 
       UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) 


      } 
      alert.addAction(ok) 
      let cancel = UIAlertAction(title: "Back", style: UIAlertActionStyle.Default) { 
       UIAlertAction in 

       self.movenav("arxiki") 

      } 
      alert.addAction(cancel) 
      self.presentViewController(alert, animated: true, completion: nil) 

     } 
      // 3. we do have authorization 
     else if CLLocationManager.authorizationStatus() == .AuthorizedAlways { 
      locationManager.startUpdatingLocation() 
     } 


     self.navigationController?.setNavigationBarHidden(false, animated: true) 

     self.eventsTable.backgroundColor = UIColor.lightGrayColor() 

     // self.locationManager.requestAlwaysAuthorization() 

     if CLLocationManager.locationServicesEnabled() { 
      locationManager.delegate = self 
      locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 
      locationManager.startUpdatingLocation() 
     } 

    } 

Meine Frage ist die folgende. Wenn der Benutzer "Nicht autorisieren" drückt Wie kann ich seine Option erhalten, damit ich ihn zurück zum vorherigen Ansichtscontroller senden kann oder ihn mit der Nachricht, die ich habe, warnen?

Antwort

3

Um die Benutzerauswahl abzufangen, müssen Sie ein CLLocationManager-Objekt deklarieren und dessen Delegate (CLLocationManagerDelegate) implementieren und die folgende Methode zum Abfangen verwenden.

func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) { 
    if status == .Denied || status == .NotDetermined{ 
     // User selected Not authorized 
    }  
} 

Ich nehme an, Sie haben die info.plist mit den entsprechenden Lokationsparametern bereits konfiguriert.

Hoffe es hilft!

+0

Das ist in meinem Fall richtig !! danken! –

Verwandte Themen