1

我正在制作一张有一些标记的地图,我想创建一个信息视图,该视图将显示每个标记的图像和一些文本。

地图

所以,当我按下信息按钮时,它会进入信息视图。

地图2

我在代码上有这个:

func mapView(mapView: MKMapView, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
    if control == annotationView.rightCalloutAccessoryView {

        performSegueWithIdentifier("showInfo", sender: data)

    }
}

但我想从“位置”传递数据,以便为每个位置显示图像。

我需要在Swift中执行此操作。

非常感谢。

4

3 回答 3

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
    }
}
于 2016-03-30T09:38:23.857 回答
0

将信息按钮插座连接到您的viewcontroller. 然后创建func如下:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if "YourSegue" == segue.identifier {
        // Then pass your data
    }
}
于 2016-03-30T09:42:53.283 回答
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
        }
    }
于 2016-03-30T09:39:53.910 回答