在我的应用程序中选择了Pin后,我希望信息按钮链接到下面的视图控制器。
如果按钮从一开始就在屏幕上,我就会知道怎么做,但是在选择一个引脚之前它就不存在了。我该如何实现?我的按钮目前只是编码如下:
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
if control == view.rightCalloutAccessoryView {
print("Button tapped ")
}
}
另外,如果这是Segue,我可以拥有这个视图控制器,并根据点击的信息引脚按钮改变文字和照片吗?
感谢您的帮助
答案 0 :(得分:0)
如果您的注释具有标题,则地图视图将响应通过委托方法选择注释
optional func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)
选择注释时,地图视图将调用此方法。您可以在已指定为地图视图委托的视图控制器中实现此方法,并告诉您的地图视图委托做什么,包括执行segue。这意味着您启动了viewcontroller,例如:
class myMapViewController: UIViewController, MKMapViewDelegate {
// Your class code starts here
}
然后在viewDidLoad()中的某个地方声明地图视图的委托是这个视图控制器:
self.myMapView.delegate = self
因此,在委托中,您可以在调用执行segue之前编写准备工作,然后在准备segue时,准备目标视图控制器,以便对所选注释执行操作。
请注意,委托方法为您提供所选的注释视图。与此注释视图一起使用的注释可通过以下方式获得:
let theAnnotation = view.annotation
在这个委托方法中。
希望这有帮助。