Si está utilizando vistas de anotación personalizadas, puede agregar un observador para la propiedad seleccionada que actuaría como un delegado para cuando se selecciona el pin.
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
MKAnnotation *annview = ...code to either dequeue or create new object...
[annview addObserver:self forKeyPath:@"selected" options:NSKeyValueObservingOptionNew context:@"selectedmapannotation"];
return annview;
}
entonces usted puede monitorear el estado seleccionado con
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context;
La respuesta unidos por Mugunth Kumar también le dará los resultados deseados es sólo que usted hizo mención del delegado como la funcionalidad en su pregunta.
EDIT:
Aquí es un ejemplo de los contenidos de la observeValueForKeyPath: ofObject: el cambio: Contexto: método
NSString *action = (NSString*)context;
if([action isEqualToString:@"selectedmapannotation"]){
BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
MKAnnotationView *ann = (MKAnnotationView *)object;
if (annotationAppeared) {
// do something with the annotation when it is selected
}
else {
// do something with the annotation when it is de-selected
}
}
¿cómo lograr que el UICalloutView a la parte delantera mediante programación? – si28719e