我有一个MKMapView注释对象,该对象具有正确的标注附件详细信息显示按钮。当按下按钮时,我正在使用addTarget:action:forControlEvent调用选择器方法,该方法创建一个详细的viewController并将其推入视图堆栈。我的问题是访问标注详细信息控制器的注释上的信息的最佳方法是什么。详细信息披露按钮设置为调用:[button addTarget:self action:@selector(disclosurePressed:) forControlEvents:UIControlEventTouchUpInside];看起来像这样:- (void)disclosurePressed:(id)sender {}我想我可以寻找发送方UIButton的父批注,任何人都可以给我提供任何有关如何最好地完成操作的指针。
2 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
一种可靠的方法(如果必须使用自定义方法)是查看地图视图的selectedAnnotations属性。
虽然该属性是NSArray,但由于地图视图一次只允许选择一个注释,因此用户刚刚点击的注释将位于索引0处,因此它将为:
id<MKAnnotation> annTapped = [mapView.selectedAnnotations objectAtIndex:0];
//Here, you can cast annTapped to a custom annotation class if needed.
//Be sure to check what kind of class it is first.
mapView.selectedAnnotations.count为了安全起见,您可能还需要先检查不为零的值。
但是,比使用addTarget和自定义操作方法更好的方法(正如内文·金已经回答过的)是使用地图视图的calloutAccessoryControlTapped委托方法,在该方法中,可以通过view使用以下参数通过参数直接访问注释:
id<MKAnnotation> annTapped = view.annotation;
- 2 回答
- 0 关注
- 924 浏览
添加回答
举报
0/150
提交
取消