我正在制作一张有一些标记的地图,我想创建一个信息视图,它会显示每个标记的图像和一些文字。
因此,当我按下信息按钮时,它会转到信息视图。
我在代码上有这个:
func mapView(mapView: MKMapView, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
if control == annotationView.rightCalloutAccessoryView {
performSegueWithIdentifier("showInfo", sender: data)
}
}
但我想从“位置”传递数据,以便我可以为每个人显示图像。
我需要在 Swift 中执行此操作。
非常感谢。
答案 0 :(得分:4)
如果您没有,请将此方法添加到您的课程中,然后将您的数据传递到目标视图的数据。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showInfo" {
let destination = segue.destinationViewController as! YourViewController
//this will execute before next ViewController's viewDidLoad method
destination.data = sender
}
}
答案 1 :(得分:0)
您必须覆盖prepareForSegue
:
viewController
功能
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if "showInfo" == segue.identifier {
// Then pass your data
let destController = segue.mapViewController as! YourViewController
destController.yourData = sender
}
}
答案 2 :(得分:0)
将信息按钮插座连接到viewcontroller
。然后按如下方式创建func
:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if "YourSegue" == segue.identifier {
// Then pass your data
}
}