将按钮放在MKAnnotationView中时出现问题

时间:2011-09-28 15:42:07

标签: iphone objective-c cocoa-touch

我正在尝试在我的AnnotationViews中添加一个小按钮,以显示有关地图上某些地方的一些信息。听起来超级基本?好。那我一定是个白痴......

我看了几个例子,搜索了整个互联网,我已经撕掉了95%的头发。它只是不起作用!

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

    if([theAnnotation class] == [MyAnnotation class])
    {
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:theAnnotation reuseIdentifier:@"annotation"];
        annotationView.canShowCallout = YES;
        annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        annotationView.enabled = YES;

    }
    return annotationView;
}

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

有人可以告诉我为什么calloutAccessoryControlTapped永远不会被调用? 我得到了一个漂亮而漂亮的注释,但是当我点击蓝色按钮时它就会关闭。我试过在按钮上添加一个目标,没有。

请帮助我!

PS:我知道我应该重复使用旧的注释视图和东西,但是我删除了所有不必要的代码,以确保没有其他东西可以搞砸了。

1 个答案:

答案 0 :(得分:0)

确保您已正确设置delegate响应MKMapViewDelegate Protocol

另外,请确保所有视图和超级视图都userInterActionEnabled设置为YES