Когда я вызываю метод MKMapView, setSelected: animated: для аннотации это не работает. Но если я позвоню в следующий раз с другой аннотацией, она начнет работать.
У кого-нибудь есть идеи, что может быть не так?
Спасибо
Код (2 соответствующих метода):
- (void)viewDidLoad {
[super viewDidLoad];
annotations = [[NSMutableArray arrayWithCapacity:30] retain];
for (NSDictionary *entry in entries) {
double lat = [[entry objectForKey:@"lat"] doubleValue];
double lon = [[entry objectForKey:@"lon"] doubleValue];
NSString *PLZ = [entry objectForKey:@"PLZ"];
NSString *name = [NSString stringWithFormat:@"%@%@", PLZ.length != 0? [NSString stringWithFormat:@"%@, ", PLZ] : @"", [entry objectForKey:@"Ort"]];
NSString *address = [NSString stringWithFormat:@"%@ - %@", [entry objectForKey:@"Grund"], [entry objectForKey:@"Zeit"]];
CLLocationCoordinate2D coordinate;
coordinate.latitude = lat;
coordinate.longitude = lon;
MyLocation *annotation = [[[MyLocation alloc] initWithName:name address:address coordinate:coordinate] autorelease];
[mapView addAnnotation:annotation];
[annotations addObject:annotation];
}
NSLog(@"LOaded");
[self zoomToFitMapAnnotations];
}
- (void)showAnnotation:(int)i {
if (i <= [annotations count]) {
[mapView setSelectedAnnotations:[NSArray arrayWithObject:[annotations objectAtIndex:i]]];
}
}
Последний метод showAnnotation - это тот, который вызывается, и отображается аннотация. Еще раз, это не работает с аннотацией, которую я называю первый раз. Независимо от того, сколько раз я это называю. Но если я изменю аннотацию, она начинает работать, даже с аннотацией, которую я назвал первой (надеюсь, это имеет смысл).
Кроме того, это работает даже в первый раз: [mapView setSelectedAnnotations:[NSArray arrayWithObject:[annotations objectAtIndex:i]]];