Передача значений из основных данных - PullRequest
1 голос
/ 19 июня 2020

В настоящее время у меня есть основные данные, и я хочу передать координаты выбранного вывода, который существует в постоянном хранилище. Итак, я отфильтровал выбранные объекты и сопоставил их с координатами аннотации вида. Местоположение - это экземпляр моей сущности. Мой код ниже:

 var location: Location!
 var latitude: Double = 0.0
 var longitude: Double = 0.0

 func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
        performSegue(withIdentifier: "toPhotos", sender: self)
            let savedPins = fetchResultController.fetchedObjects!
        location = savedPins.filter({$0.latitude == view.annotation?.coordinate.latitude && $0.longitude == view.annotation?.coordinate.longitude}).first
            self.longitude = location.longitude
            self.latitude = location.latitude
    }

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let vc = segue.destination as? photoAlbumViewController {
            vc.dataController = dataController
            vc.longitude = longitude
            vc.latitude = latitude
}


Когда он переходит, он не отправляет координаты с первой попытки, пока я не вернусь во второй раз обратно в контроллер фотоальбома, а затем я получу первую координату.

1 Ответ

0 голосов
/ 19 июня 2020

Похоже, вы переходите перед установкой переменных. Измените на это:

 func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
        let savedPins = fetchResultController.fetchedObjects!
        location = savedPins.filter({$0.latitude == view.annotation?.coordinate.latitude && $0.longitude == view.annotation?.coordinate.longitude}).first
        self.longitude = location.longitude
        self.latitude = location.latitude

        //moved to after setting the variables
        performSegue(withIdentifier: "toPhotos", sender: self)

    }
...