Как передавать данные из одного контроллера представления другому в раскадровке при возвращении?
-
28-10-2019 - |
Вопрос
Сценарий:
- Расскар с UinavigationController в качестве начального контроллера.
- MainVC (root VC навигационного контроллера) требует, чтобы пользователь выбрал местоположение на карте.
- MainVC нажимает VC, содержащий карту Mapkit, и добавляет себя в качестве слушателя для уведомления, которое MAPVC отправляет, когда пользователь выбирает местоположение.
- Mapkit - это свинья памяти, мы все это знаем. iOS дает мне предупреждение о памяти, я делаю все, что нужно сделать, затем iOS разбирается в том, что он может разобраться, включая MainVC.
- MAPVC отправляет уведомление, но никто не слушает его. Расположение, которое выбрал пользователь, потеряно, как слезы под дождем.
Учитывая это, какой надежный способ передать данные этого местоположения при возвращении в MainVC? Я даже подумал о том, чтобы записать это до ~/tmp (что я использую, чтобы иметь дело с большим количеством данных, такими как изображения), но это кажется пустой тратой машины. Разве нет механизма, к которому я могу зацепить, как событие, выпущенное, когда контроллер навигации возвращается к предыдущему ВК? Например, иметь доступ к чем -то вроде PrepareForseguge: но в противоположном направлении было бы неплохо.
РЕДАКТИРОВАТЬ Я пытался пойти на делегирование, но, тем не менее, мой делегат выпускается. Я застрял с необходимостью писать в ~/tmp?
Решение
Смотрите мой ответ здесь для подробного объяснения настройки протокола делегата и делегата - здесь