是否可以在不使用segue的情况下从MKAnnotation传递数据并只显示视图控制器?

时间:2015-06-02 04:59:39

标签: ios swift segue mkannotationview presentviewcontroller

由于某些奇怪的原因,Xcode在我创建它并使用performSegueWithIdentifier("Details", sender: self)时无法识别我的segue。

enter image description here

但是我能够通过向视图控制器提供以下内容来找到解决方法:

let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("DetailsViewController") as! UIViewController

self.presentViewController(viewController, animated: true, completion: nil)

如果我没有使用MKAnnotationView,如何将数据从segue传递到新的详情视图? (func prepareForSegue需要segue来传递数据吗?)

2 个答案:

答案 0 :(得分:2)

//您必须创建DetailViewController(Class Name)而不是viewController

的对象
let viewController:UIViewController = storyboard.instantiateViewControllerWithIdentifier("DetailsViewController") as! DetailViewController

//然后你可以访问DetailsViewController像这样的变量:

viewController.parameter = whatever

self.presentViewController(viewController, animated: true, completion: nil)

答案 1 :(得分:0)

关于你的segue未被认可的问题 -

显示/推送segue必须由导航控制器执行。

像Dhaval所说,你不必使用segues来传递数据。您只需要一个可用于传递数据的公共属性/公共方法。