tags:

views:

1784

answers:

1

I have used this example in my application,

http://spitzkoff.com/craig/?p=81

but its not calling/triggering the calloutAccessoryControlTapped as i tapped the accessorycontrol.

Here is my code.

- (void)viewDidLoad {
    MapAnnotation *annotation = nil;
    annotation = [[MapAnnotation alloc] initWithCoordinate:[[trackPointsArray objectAtIndex:trackPointsArray.count - 2] coordinate]];
    [mapView addAnnotation:annotation];
    [super viewDidLoad];
}

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKAnnotationView *annotationView = nil;

    // start pin
    static NSString *StartPinIdentifier = @"StartPinIdentifier";
    MKPinAnnotationView *startPin = [annotationView dequeueReusableCellWithIdentifier:StartPinIdentifier];

    if (startPin == nil) {
     startPin = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:StartPinIdentifier] autorelease];
     startPin.animatesDrop = YES;
     startPin.pinColor = MKPinAnnotationColorGreen;
     startPin.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
     startPin.canShowCallout = YES;
     startPin.enabled = YES;

     UIImage *image = [UIImage imageNamed:@"location.png"];
     UIImageView *imgView = [[UIImageView alloc] initWithImage:image];
     startPin.leftCalloutAccessoryView = imgView;
    }

    annotationView = startPin;
    return annotationView;
}

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
     NSLog(@"calloutAccessoryControlTapped");
}

I have been struggling with this problem for a while, seems like a lot of people is having the same problem as well. Any help would be appreciated. Thanks

A: 

Problem solved! My other view was blocking the mapview. [self setUserInteractionEnabled:NO];

vicky