为Segue做准备

时间:2015-08-06 18:32:55

标签: swift parse-platform mkmapview mkpointannotation

每当右侧细节附件被轻敲到另一个视图时,我试图从地图视图中传递关于点注释的数据,该视图将显示有关未在无情视图中显示的点注释的更多信息。我知道我需要使用override function prepareForSegue,但我如何正确设置它以做我想要的。关于点注释的其他信息来自Parse所以我假设我也必须设置一个查询。请帮忙! 感谢!!!

2 个答案:

答案 0 :(得分:1)

您可以使用NSUserDefaults以这种方式将地图视图中的值传递到另一个视图:

func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, calloutAccessoryControlTapped control: UIControl!) {

    let title = view.annotation.title
    NSUserDefaults.standardUserDefaults().setObject(title, forKey: "mapTitle")
    performSegueWithIdentifier("mapToCity", sender: self)

}

在下一个视图中,您可以通过这种方式获取值:

override func viewDidLoad() {
    super.viewDidLoad()
    let foo1 = NSUserDefaults.standardUserDefaults().objectForKey("mapTitle") as! String
    println(foo1)

}

有关详细信息,请查看THIS示例项目。

答案 1 :(得分:1)

首先你打电话给segue:

performSegueWithIdentifier("segue")

然后准备好了:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "segue" {
        let viewController = segue.destinationViewController as! YourViewController
        controller.setPoint = "10"
    }
}

这将设置segue发生之前的值。 希望它有所帮助!