annotation ios swift annotations mkmapview mkannotationview

ios - annotation - Swift, Cómo obtener información de una anotación personalizada al hacer clic



add annotation mapkit swift (1)

Puedes obtener tu Anotación dentro de didSelectAnnotationView, que luego te dará MKAnnotationView. Este MKAnnotationView tiene MKAnnotation como un objeto.

func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) { println("Annotation selected") if let annotation = view.annotation as? LocationMapAnnotation { println("Your annotation title: /(annotation.title)"); } }

Tengo la siguiente clase de anotación personalizada:

import UIKit import MapKit class LocationMapAnnotation: NSObject, MKAnnotation { var title: String? var coordinate: CLLocationCoordinate2D var location: Location init(title: String, coordinate: CLLocationCoordinate2D, location: Location) { self.title = title self.coordinate = coordinate self.location = location } }

Estoy cargando las anotaciones en una vista de mapa como esta:

for i in 0..<allLocations.count{ //Add an annotation let l: Location = self.allLocations[i] as! Location let coordinates = CLLocationCoordinate2DMake(l.latitude as Double, l.longitude as Double) let annotation = LocationAnnotation(title: l.name, coordinate: coordinates, location: l) mapView.addAnnotation(annotation) }

Y quiero obtener el objeto de Location de la anotación seleccionada. Actualmente tengo este método que se llama cada vez que toco una anotación, pero no estoy seguro de cómo recuperar el objeto específico de la anotación.

func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) { print("Annotation selected") //performSegueWithIdentifier("locationInfoSegue", sender: self) }

Gracias.