首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使MapKit标注按钮执行segue?

如何使MapKit标注按钮执行segue?
EN

Stack Overflow用户
提问于 2016-02-19 20:09:22
回答 1查看 594关注 0票数 0

我在MapKit中有一个自定义的标注视图,其中包含一个按钮。我想使它,以便点击这个按钮将执行一个给定的节拍。既然我是从一个.xib加载自定义标注,而它的类是UIView的一个子类(而不是UIViewController,所以我不能只在它的类文件中执行segue ),我怎么能这样做呢?

编辑

代码语言:javascript
复制
    if control == view.detailCalloutAccessoryView as? CustomCalloutView {
        if control.viewWithTag(6).touchesBegan {
        performSegueWithIdentifier("showRentalDetailsFromCalloutView", sender: self)
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2016-02-19 20:21:52

实际上,有一种方法可以检测对标注的单击。这在Objective中,但是您可以将它转换为Swift,它将对您有用:

代码语言:javascript
复制
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
        calloutAccessoryControlTapped:(UIControl *)control
{
    [self performSegueWithIdentifier:@"SegueName" sender:self];
}

这里引用了关于点击MKAnnotation:MKMapView MKPointAnnotation抽头事件的更详细的答案

这是我在Swift中对这种方法的解释。免责声明:我没有测试这个,但它应该指向正确的方向。

代码语言:javascript
复制
func mapView(_ mapView: MKMapView,
    annotationView view: MKAnnotationView,
    calloutAccessoryControlTapped control: UIControl)
{

    performSegueWithIdentifier("SegueName", sender: self)

}

为了完整起见,这里有一个指向MKMapViewDelegate文档的链接,其中包含有关此函数的详细信息:MKMapViewDelegate协议参考

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35514078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档