jsem vyřešil problém s přidáním pozorovatele. Pozorovatel pak dělá svou věc, a po tom callout ukáže.
Něco, co jsem měl problémy s je, že jsem nemohl aktualizovat informace v popisku bubliny po zobrazí se bublina. Jediný způsob, jak to udělat, je vytvořit si vlastní popisku bubliny (jak jsem pochopil), což je něco, co jsem neměl pocit, že vzhledem k tomu, že mám termín. Opravil jsem, že tím, že přidá další UIView s alfa na něj a textem „Získání dat o poloze ...“. Jen jsem ukázat tento názor při stisknutí s polohou a když je pozorovatel udělal, jsem opět skrýt zobrazení (mimo kurs pomocí animace).
Doufat, že moje odpověď pomohl ostatním.
Kód:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
Některé další kód:
- (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");
}
}
}
A dát to krátce poté, co @ syntetizovat to:
NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";