是否可以在不使用 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 方法。