如何将数据传递到另一个视图

时间:2016-03-30 09:32:56

标签: ios swift mapkit pass-data infoview

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

map

因此,当我按下信息按钮时,它会转到信息视图。

map2

我在代码上有这个:

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

        performSegueWithIdentifier("showInfo", sender: data)

    }
}

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

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

非常感谢。

3 个答案:

答案 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
    }
}