How to find which annotation send showDetails?
Solution 1:
The comments in your code have the answer. Instead of using a custom method and calling addTarget, use the map view's calloutAccessoryControlTapped delegate method. In this method, you will get a reference to the annotation view which contains a reference to the annotation.
Remove the call to addTarget and replace your "showDetails" method with:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
MyAnnotationClass *annot = (MyAnnotationClass *)view.annotation;
//do something...
}