He resuelto el problema al añadir un observador. El observador entonces hace su cosa y después de que la llamada se muestra.
Algo que tenía problemas con es que no he podido actualizar la información en la burbuja de llamada después de que se muestra la burbuja. La única manera de hacer esto es crear su propia burbuja de llamada (como yo lo entiendo), que es algo que no me siento como teniendo en cuenta que tengo una fecha límite. Me fijo que mediante la adición de un UIView adicional con un alfa en él y un texto "Obtención de datos de localización ...". Me acaba de aparecer ese punto de vista cuando se pulsa un lugar y cuando se realiza el observador, me oculto (por supuesto mediante el uso de una animación) de nuevo la vista.
Espero que mi respuesta ha ayudado a otros.
Código:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
Algo más de código:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context{
NSString *action = (NSString*)context;
MKAnnotationView *annotationView = [(MKAnnotationView*)object retain];
BikeAnnotation *bike = [[annotationView annotation] retain];
if([action isEqualToString:GMAP_ANNOTATION_SELECTED] && [[bike _stationType] intValue] != 5 && [[bike _stationType] intValue] != 6){
BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
if (annotationAppeared) {
NSLog(@"Annotation selected");
else {
NSLog(@"annotation deselected");
}
}
}
Y poner esto justo después de la @ sintetizar de:
NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";