实际上我正在我的应用程序中开发一些东西,在我的MKMapView
中显示注释,这些注释应该是可点击的并将参数传递给方法。
现在的问题是如何在点击显示按钮时将参数传递给下一个功能
对于注释的格式,我使用- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
方法显示公开按钮。但问题是,如何从当前显示的Annotation
对象中获取值?
Annotation
的代码(仅限相关部分):
@synthesize coordinate, id, title, subtitle;
+ (id)annotationWithCoordinate:(CLLocationCoordinate2D)coordinate {
return [[[[self class] alloc] initWithCoordinate:coordinate] autorelease];
}
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate {
self = [super init];
if(nil != self) {
self.coordinate = coordinate;
}
return self;
}
当触摸公开按钮时,应调用方法- (void)displayInfo:(NSNumber *) anId;
并将Annotation.id
作为anId
参数移交。
使用该代码生成公开按钮:
UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
dropPin.rightCalloutAccessoryView = disclosureButton;
dropPin.animatesDrop = YES;
dropPin.canShowCallout = YES;
所以 - 问题:
如何将该参数传递给该函数或阅读所点击的id
的{{1}}?
我以为我可以使用UIButton的选择器(但是 - 如何传递id?)或Annotation
(再次 - 如何传递id?)来处理关于disclosureButton的点击。 / p>
我希望你知道我的意思,非常感谢你的答案! :)
答案 0 :(得分:4)
在calloutAccessoryControlTapped中,注释可通过视图获得:
MKAnnotation *annotation = view.annotation;