В методе showDetails:
вы можете получить пин-код из массива selectedAnnotations
представления карты. Несмотря на то, что свойство имеет значение NSArray
, просто получите первый элемент в массиве, поскольку в представлении карты можно выбрать только один штифт за раз:
//To be safe, may want to check that array has at least one item first.
id<MKAnnotation> ann = [[mapView selectedAnnotations] objectAtIndex:0];
// OR if you have custom annotation class with other properties...
// (in this case may also want to check class of object first)
YourAnnotationClass *ann = [[mapView selectedAnnotations] objectAtIndex:0];
NSLog(@"ann.title = %@", ann.title);
Кстати, вместо того, чтобы делать addTarget
и реализовывать пользовательский метод, вы можете использовать метод делегата calloutAccessoryControlTapped
представления карты. Добавленная аннотация доступна в параметре view
:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"ann.title = %@", view.annotation.title);
}
Убедитесь, что вы удалили addTarget
из viewForAnnotation
, если вы используете calloutAccessoryControlTapped
.