每当正确的细节附件被点击时,我都试图将地图视图中有关点注释的数据传递给另一个视图,该视图将显示更多关于在无情视图中没有显示的点注释的信息。我知道我需要使用override function prepareForSegue,但是我如何正确地设置它来做我想做的事情。关于point注释的其他信息来自于Parse,所以我假设我也必须设置一个查询。请帮帮我!谢谢!
发布于 2015-08-06 18:45:33
您可以使用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)
}有关更多信息,请查看这示例项目。
发布于 2015-08-06 18:47:52
首先,你把它叫做segue:
performSegueWithIdentifier("segue")然后准备好:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "segue" {
let viewController = segue.destinationViewController as! YourViewController
controller.setPoint = "10"
}
}这将在segue发生之前设置值。希望能帮上忙!
https://stackoverflow.com/questions/31863303
复制相似问题