2015-09-05 1 views
1

Мне сложно передать название выделенной аннотации в контроллер Segued view. Я чувствую, что это может быть что-то простое, что мне нужно изменить, но не могу понять.Перейти к содержанию Название для просмотра Контроллер (swift)

Вот код для подготовки SEGUE:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if(segue.identifier == "viewDetail"){ 

     let theDestination : DetailViewController = segue.destinationViewController as! DetailViewController 
     theDestination.getName = view.annotation.title! 
    } 
} 

и вот код, когда аннотацию взывать прослушивается, он выполняет SEGUE

func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, calloutAccessoryControlTapped control: UIControl!) { 
    self.performSegueWithIdentifier("viewDetail", sender: self) 

} 

проблема в том, что , в функции prepareForSegue ... он не распознает «view.annotation.title!» заявив, что UIView не имеет аннотации участника.

Я знаю, когда я Println (view.annotation.title!) В другой функции, она работает

Спасибо за помощь

ответ

1

Вам необходимо пройти view в параметре performSegueWithIdentifiersender на карте просмотреть метод делегата.

func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, calloutAccessoryControlTapped control: UIControl!) { 
    self.performSegueWithIdentifier("viewDetail", sender: view) 
} 

После этого вы можете прочитать его из параметра sender в реализации prepareForSegue.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if(segue.identifier == "viewDetail"){ 
     let theDestination : DetailViewController = segue.destinationViewController as! DetailViewController 
     theDestination.getName = (sender as! MKAnnotationView).annotation!.title! 
    } 
} 
0

Спасибо за помощь, я решил его с простой линией:

annotation = self.map.selectedAnnotations[0] as! MKAnnotation 

так, что он посылает заголовок аннотаций первой выделенной аннотации в представлении, что только one..the я позвонил.

+0

где вы положили эту строку? я пытаюсь сделать то же самое и не могу понять это – cfsprod

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

  • Нет связанных вопросов^_^