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.