2016-11-08 21 views
0

一旦选择一个引脚被选中我的应用程序,我想信息按钮链接到下面的视图控制器。推进到第二个视图控制器与mapkit信息按钮

2nd View Controller

我知道如何做到这一点,如果按钮是从一开始就在屏幕上,但直到选择引脚它不存在。我如何执行此操作?我的按钮是目前简单地编码为以下几点:

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { 
    if control == view.rightCalloutAccessoryView { 
     print("Button tapped ") 
    } 
} 

而且,如果这是Segue公司我能有这样的一个视图控制器,并有文字和图片的变化取决于其信息图钉按钮被点击?

感谢您的帮助

回答

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 

在此委托方法中。

希望这会有所帮助。

+0

嗨感谢您的回复,但它让我有些困惑。我的委托方法是否位于视图控制器中,然后与指定按钮的功能一起使用?我只是困惑到我应该改变什么。对不起,如果这是加剧,但我很新,迅速,不完全理解。如果你能再帮忙,那会很棒。 –

相关问题