位置

时间:2015-08-11 19:48:31

标签: ios objective-c iphone xcode swift

我正在开发一个使用用户位置的应用程序。我使用核心位置。 但在某些屏幕上它并没有捕获位置。步骤正是这些:

MainViewController:MainViewController我请求授权。它奏效了。我允许授权定位。

if CLLocationManager.authorizationStatus() == .NotDetermined {
     if locationManager.respondsToSelector("requestWhenInUseAuthorization") == true {
          locationManager.requestWhenInUseAuthorization()
     }
}

ViewController 1: 我触摸选项1,segue到ViewController 1,这里我开始更新位置。它奏效了。捕捉纠正了位置。

override func viewDidAppear(animated: Bool) {
   locationManager.delegate = self
   locationManager.startUpdatingLocation()
}

override func viewDidDisappear(animated: Bool) {
    locationManager.stopUpdatingLocation()
    NSLog("Location has stopped updating")
}

ViewController 2: 现在我回到MainViewController,然后触摸选项2,视图转到ViewController 2.但是这里的操作按钮touchHowToGo,不要开始更新位置,方法已调用,但不是工作。如果我返回ViewController 1位置开始正常。只有在这个屏幕上不起作用。

IBAction func touchHowToGo(sender: AnyObject) {
    locationManager.delegate = self
    locationManager.startUpdatingLocation()
}
  • 在这三个视图控制器中,我导入CoreLocation;
  • ViewController 1和ViewController 2设置CLLocationManagerDelegate;
  • .plist我添加了密钥;
  • 在应用程序面板设置已经位于WhenInUse;
  • 的位置
  • 应用不会崩溃,而didFailError永远不会更新位置

抓住位置 在所有ViewControllers我使用的方法委托:

func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) {
    NSLog("Location has updated with success %f - %f", newLocation.coordinate.latitude, newLocation.coordinate.longitude)
}

我尝试了didUpdateLocations,但没有成功

0 个答案:

没有答案