0

我正在尝试在我的 iPhone 应用程序中实现 mapView:annotationView:calloutAccessoryControlTapped: 方法。该方法被调用,但是当我尝试使用传递给它的视图时

注解* temp = (注解 *)view.annotation;

该应用程序因错误而崩溃。

2011-03-29 12:51:54.453 Flora[3316:207] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UITouchesEvent 注释]:无法识别的选择器发送到实例 0x6d13410”

在调试器中,视图似乎是 UITouchesEvent,而不是 MKAnnotationView。

我已经阅读了人们使用此方法遇到的其他问题,但他们在使用传入视图的注释属性后都可以使用它。这对我不起作用。

4

1 回答 1

2

在viewForAnnotation方法中,设置callout附件视图的时候,是不是在按钮上做addTarget?(如果你是,不要。)

[rightButton addTarget:self 
    action:@selector(mapView:annotationView:calloutAccessoryControlTapped:) 
    forControlEvents:UIControlEventTouchUpInside];

不要将委托方法添加为按钮的目标。按下标注附件时(如果已设置地图视图的委托),将使用正确的参数值自动调用委托方法。如果您在 viewForAnnotation 中有类似上述的行,请将其删除。

于 2011-03-29T18:29:38.853 回答