ios - 在 mapView 和 tableView 之间传递数据

标签 ios swift mkmapview tableview

我有一个带有 mapView 和 tableView 的 viewController。我正在尝试从 mapView 获取用户当前位置等数据,并将其传递给 tableView,这样我就可以打印出计算出的距离。

我尝试使用此代码...

let distance = currentLocation.distanceFromLocation(endLocation)

但这不起作用,因为 currentLocation 是在 locationManager 的 didUpdateLocation 函数中创建的,而 endLocation 来 self 从 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;
}

但我不能在该函数之外使用数据。

最佳答案

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

func CalculateDisatnceBetweenTwoLocations(来源:CLLocation,目的地:CLLocation)-> 双{

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

关于ios - 在 mapView 和 tableView 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122648/

相关文章:

ios - libGDX、RoboVM - 如何编辑 Obj-C 代码?

ios - 与语言环境无关的 FBSDKGraphRequest

iphone - 将现有应用程序迁移为与 iPhone 5 兼容后,最后一个 tableView 单元格不可触摸

swift - Swift 中的多个连接 - 如何确定按下了哪个按钮?

ios - 当NavigationController推送到TabBarController时,为什么在第一个选项卡栏项目之后,TableViewController的contentInset是错误的

iphone - 如何在 MKMapView 中将我当前的位置居中?

iPhone根据纬度和经度创建地标

ios - 在 Swift 中访问 UITabBarController 变量

ios - lldb 中的 Swift 泛型 - 错误 : unable to find any types that match the raw type for full type

ios - mapView 声明的 Swift 编译器错误