В настоящее время я работаю над функцией, в которой пользователь может нажать на аннотацию карты и перейти на другой экран, на котором будет изображение этого местоположения. Я использую Mapbox и функцию tapOnCallout для перехода к другому контроллеру представления (imageLocationViewController), который будет содержать представление изображения.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы сообщить этому imageLocationViewController, какая аннотация была нажата и, следовательно, какое изображение должно быть показано. Я использую firebase для хранения своих данных, а в данных аннотации у меня есть photoUrl, который содержит соответствующее изображение.
В настоящее время я могу распечатать соответствующее имя аннотации и URL-адрес фотографии, когда я перехожу. Однако, как только я нахожусь в контроллере представления imageLocation, я полагаю, что теряю эти данные?
Кто-нибудь знает, как я могу передать эти данные в новый контроллер представления, чтобы я мог передать правильный photoUrl в представление изображения.
Это мой текущий код для перехода к imageLocationViewController.
func mapView(_ mapView: MGLMapView, tapOnCalloutFor annotation: MGLAnnotation) {
if let annotation = annotation as? SkateAnnotation {
self.performSegue(withIdentifier: "SkateImageSegue", sender: annotation.id)
print("YourAnnotation: \(annotation.photoUrl)")
}
}
Обновление ** Код для подготовки к переходу
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "EditSaveSpotSegue" {
let destination = segue.destination as! EditSaveSpotViewController
destination.parkId = sender as! String
}
}