Je résolu la question en ajoutant un observateur. L'observateur fait alors sa chose et après que la légende se présente.
Quelque chose que j'ai eu des problèmes avec est que je ne pouvais pas mettre à jour les informations contenues dans la bulle de la bulle après callout apparaît. La seule façon de le faire est de créer votre propre bulle callout (si je comprends bien), ce qui est quelque chose que je ne me sentais pas comme étant donné que je une date limite. Je fixe en ajoutant un UIView supplémentaire avec un alpha et sur un texte « Obtenir des données d'emplacement ... ». Je montre simplement jusqu'à ce point de vue en appuyant sur un emplacement et quand l'observateur est fait, je me cache à nouveau la vue (hors cours à l'aide d'une animation).
Espérons que ma réponse a aidé d'autres.
Code:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
Code plus:
- (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");
}
}
}
Et mettre cela juste après le @ de synthétisent:
NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";