2015-06-02 2 views
0

По какой-то странной причине Xcode не распознает мой сеанс, когда я его создаю, и использую performSegueWithIdentifier("Details", sender: self).Можно ли передавать данные из MKAnnotation без использования segue и просто представлять View Controller?

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

// Вы должны сделать объект этого DetailViewController(Class Name), а не viewController

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

// Тогда вы можете получить доступ к переменной DetailsViewController Like This:

viewController.parameter = whatever

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

На вашем Segue не признается проблема -

Шоу/push-сегменты должны выполняться навигационным контроллером.

Как сказал Дхавал, вам не нужно использовать segues для передачи данных. Все, что вам нужно, это общедоступный/общедоступный метод, который вы можете использовать для передачи данных.

Смежные вопросы