是否可以在不使用 segue 并仅显示视图控制器的情况下从 MKAnnotation 传递数据?
Is it possible to pass data from MKAnnotation without using a segue and just presenting a View Controller?
由于某些奇怪的原因,Xcode
在我创建并使用 performSegueWithIdentifier("Details", sender: self)
时无法识别我的转场。
但是我能够通过向视图控制器展示这个来找到解决这个问题的方法:
let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("DetailsViewController") as! UIViewController
self.presentViewController(viewController, animated: true, completion: nil)
如果我不使用 segue
,如何将数据从 MKAnnotationView
传递到新的详细信息视图? (func prepareForSegue
需要 segue 来传递数据吗?)
// 你必须将 DetailViewController(Class Name)
作为对象,而不是 viewController
let viewController:UIViewController = storyboard.instantiateViewControllerWithIdentifier("DetailsViewController") as! DetailViewController
// 然后你可以像这样访问 DetailsViewController
的变量:
viewController.parameter = whatever
self.presentViewController(viewController, animated: true, completion: nil)
关于你的 segue 未被识别的问题 -
Show/push 转场必须由导航控制器执行。
正如 Dhaval 所说,您不必使用 segues 来传递数据。您只需要一个可以用来传递数据的 public property/public 方法。
由于某些奇怪的原因,Xcode
在我创建并使用 performSegueWithIdentifier("Details", sender: self)
时无法识别我的转场。
但是我能够通过向视图控制器展示这个来找到解决这个问题的方法:
let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("DetailsViewController") as! UIViewController
self.presentViewController(viewController, animated: true, completion: nil)
如果我不使用 segue
,如何将数据从 MKAnnotationView
传递到新的详细信息视图? (func prepareForSegue
需要 segue 来传递数据吗?)
// 你必须将 DetailViewController(Class Name)
作为对象,而不是 viewController
let viewController:UIViewController = storyboard.instantiateViewControllerWithIdentifier("DetailsViewController") as! DetailViewController
// 然后你可以像这样访问 DetailsViewController
的变量:
viewController.parameter = whatever
self.presentViewController(viewController, animated: true, completion: nil)
关于你的 segue 未被识别的问题 -
Show/push 转场必须由导航控制器执行。
正如 Dhaval 所说,您不必使用 segues 来传递数据。您只需要一个可以用来传递数据的 public property/public 方法。