gpt4 book ai didi

ios - 如何让 MapKit 标注按钮执行 segue?

转载 作者:行者123 更新时间:2023-11-29 01:13:16 25 4
gpt4 key购买 nike

我在 MapKit 中有一个自定义标注 View ,其中包含一个按钮。我想这样做,以便点击此按钮将执行给定的 segue。我怎样才能做到这一点,因为我从 .xib 加载自定义标注,该 .xib 的类是 UIView 的子类(而不是 UIViewController,所以我不能只在其类文件中执行 segue)

编辑

    if control == view.detailCalloutAccessoryView as? CustomCalloutView {
if control.viewWithTag(6).touchesBegan {
performSegueWithIdentifier("showRentalDetailsFromCalloutView", sender: self)
}
}

最佳答案

实际上有一种方法可以检测标注上的点击。这是 Objective-C 语言,但您可以将其转换为 Swift,它会为您工作:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
[self performSegueWithIdentifier:@"SegueName" sender:self];
}

以下是有关点击 MKAnnotation 的更详细答案的引用:MKMapView MKPointAnnotation tap event

这是我在 Swift 中对该方法的演绎。免责声明:我没有对此进行测试,但它应该为您指明正确的方向。

func mapView(_ mapView: MKMapView,
annotationView view: MKAnnotationView,
calloutAccessoryControlTapped control: UIControl)
{

performSegueWithIdentifier("SegueName", sender: self)

}

为了完整起见,这里是 MKMapViewDelegate 文档的链接,其中包含有关此函数的详细信息:MKMapViewDelegate Protocol Reference

关于ios - 如何让 MapKit 标注按钮执行 segue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com