在mapView和tableView之间传递数据

时间:2016-03-21 03:23:57

标签: ios swift mkmapview tableview

我有一个带有mapView和tableView的viewController。我试图从mapView获取用户当前位置等数据,并能够将其传递给tableView,以便打印出计算出的距离。

我尝试使用此代码......

let distance = currentLocation.distanceFromLocation(endLocation)

但这不起作用,因为currentLocation是在locationManager的didUpdateLocation函数中创建的,而endLocation是来自我从CloudKit中提取的tableview数据。我不能将这两个数据一起使用,因为它们来自不同的功能。

如何设置userLocation以便我可以在locationManager的功能之外使用它?

我有这个..

    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
    let userLocation:CLLocation = locations[0] as! CLLocation
    let ulong = userLocation.coordinate.longitude;
    let ulat = userLocation.coordinate.latitude;
}

但我无法使用该功能之外的数据。

1 个答案:

答案 0 :(得分:1)

将当前位置和结束位置保存到不同的CLLocation对象,然后实现以下代码。

func CalculateDisatnceBetweenTwoLocations(来源:CLLocation,destination:CLLocation) - >双{

var distanceMeters = source.distanceFromLocation(destination)
var distanceKM = distanceMeters / 1000
let roundedTwoDigit = distanceKM.roundedTwoDigit
return roundedTwoDigit

}

相关问题