检测触摸了哪个MKAnnotation标注

时间:2011-07-06 12:17:34

标签: iphone mkmapview

我正在使用MKMapKit在地图上显示一些搜索结果。我正在使用

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control

检查何时按下标注,但我能够获得的唯一信息是view.annotation.title。这对我没有用,因为我可能会有很多具有相同标题的结果。

我在类中添加了一个business_id属性,但我似乎无法在此方法中读取它。我猜这个方法只适用于属于View的元素吗?

唯一确定触摸哪个标注的最佳方法是什么?

感谢。

1 个答案:

答案 0 :(得分:7)

由于注释是你的一个制作,你可以用它做你想做的事。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
    MyGroovyAnnotation *annotation = (MyGroovyAnnotation *)view.annotation;
    id businessId = annotation.businessId;
    // do something remarkable
}

如果您为任何触摸的注释视图调用方法时复制并粘贴它,这将会爆炸,因此您应该在向其发送消息之前检查注释视图是否是带有自定义注释的注释视图。