2016-03-21 14 views
0

Ich habe eine ViewController mit einem mapView und einem TableView darauf. Ich versuche, Daten wie den aktuellen Standort des Benutzers aus der mapView zu bekommen und in der Lage sein, es an die TableView übergeben, so dass ich die berechnete Entfernung ausdrucken kann.Übergeben von Daten zwischen mapView und tableView

Ich habe versucht, diesen Code verwenden ...

let distance = currentLocation.distanceFromLocation(endLocation) 

Aber das funktioniert nicht, weil in Currentlocation Locationmanager der didUpdateLocation Funktion erstellt wird, während endLocation aus dem Tableview Daten ist, dass ich "m von Wolkenjunge ziehen. I kann nicht die beiden Stücke von Daten verwenden, zusammen, weil sie aus verschiedenen Funktionen sind.

Wie gehe ich über die userLocation Einstellung so, dass ich es außerhalb der Locationmanager die Funktion nutzen zu können?

ich diese haben ..

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

Aber ich kann die Daten außerhalb dieser Funktion nicht verwenden.

+0

Speichern Sie Ihre aktuelle Position und Endstelle zu verschiedenen CLLocation Objekte und dann folgenden Code implementieren. func calculateDisatnceBetweenTwoLocations (Quelle: CLLocation, Ziel: CLLocation) -> Double { var = Distanzmessgeräte source.distanceFromLocation (Ziel) var distanceKM = Distanzmessgeräte/1000 lassen roundedTwoDigit = distanceKM.roundedTwoDigit return roundedTwoDigit } –

Antwort

1

Speichern Sie Ihre aktuelle Position und Endposition in verschiedenen CLLocation-Objekten und implementieren Sie anschließend den folgenden Code.

func CalculateDisatnceBetweenTwoLocations (Quelle: CLLocation, Ziel: CLLocation) -> Double {

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

}

+0

Ich verstehe, was Sie schlagen vor, ich habe meinen Beitrag aktualisiert, bitte sehen Sie sich die aktualisierte Frage an. – ALTVisual

+0

Ich habe nicht angefangen, an swift zu arbeiten, weiß also nicht viel über den Funktionsumfang. Aber kann dir die Idee bezüglich deiner Frage geben. Wenn Sie die Daten außerhalb der Funktion nicht verwenden können, müssen Sie sie zunächst in Benutzerstandardeinstellungen speichern und dann in anderen Funktionen verwenden. –

+0

Das hat mein Problem behoben. Vielen Dank! – ALTVisual

Verwandte Themen