Добавить дополнительную информацию в MKPointAnnotation, кроме заголовка и субтитров
Я хочу передать информацию из аннотации Pin другому viewController. Я могу передать заголовок и подзаголовок аннотации, но мне нужно передать некоторую дополнительную информацию вместе с ними. Есть ли способ добавить дополнительную информацию в MKPointAnnotation, кроме заголовка и субтитров?
здесь у меня есть название булавки и субтитры, которые отображаются на карте:
var zoopin = MKPointAnnotation()
zoopin.coordinate = zoo
zoopin.title = "The zoo"
zoopin.subtitle = "hello this is the zoo"
mapView.addAnnotation(zoopin)
заголовок и субтитры затем передаются в мой контроллер просмотра информации с помощью:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "info") {
if let annotation = sender as? MKAnnotationView {
let detailViewController = segue.destinationViewController as! info
detailViewController.titleText = annotation.annotation?.title ?? ""
detailViewController.detaileText = annotation.annotation?.subtitle ?? ""
}
}
}
1 ответ
Решение
Создайте собственную аннотацию, новый файл или класс
import MapKit
class MyAnnotation: NSObject, MKAnnotation {
var coordinate: CLLocationCoordinate2D
var EXTRA_INFORMATION: String?
var title: String?
init(coordinate: CLLocationCoordinate2D) {
self.coordinate = coordinate
}
}
и использовать его вместо обычного MKPointAnnotation
var zoopin = MyAnnotation()
zoopin.coordinate = zoo
zoopin.title = "The zoo"
zoopin.subtitle = "hello this is the zoo"
zoopin.EXTRA_INFORMATION = "that is your new extra info that you wanted to add?"
mapView.addAnnotation(zoopin)