Как передать данные от одного View Controller к другому в раскадровке при возвращении? - PullRequest
0 голосов
/ 20 февраля 2012

Сценарий:

  • Раскадровка с UINavigationController в качестве начального контроллера.
  • MainVC (корневой vc контроллера навигации) необходимо, чтобы пользователь выбрал местоположение на карте.
  • MainVC выдвигает VC, содержащий карту MapKit, и добавляет себя в качестве прослушивателя для уведомления, которое MapVC отправляет, когда пользователь выбирает местоположение.
  • MapKit - это проблема с памятью, мы все это знаем.iOS выдает мне предупреждение о памяти, я делаю все, что нужно сделать, затем iOS освобождает все, что может освободить, включая MainVC.
  • MapVC отправляет уведомление, но его никто не слушает.Местоположение, которое выбрал пользователь, потеряно, как слезы под дождем.

Учитывая это, каков надежный способ передачи данных о местоположении при возвращении в MainVC?Я даже думал записать его в ~ / tmp (это то, что я использую для работы с большим количеством данных, таких как изображения), но это кажется пустой тратой машин.Разве нет механизма, к которому я могу подключиться, например, событие, которое запускается, когда навигационный контроллер возвращается к предыдущему ВК?Например, иметь доступ к чему-то вроде prepareForSegue: но в противоположном направлении было бы неплохо.

EDIT Я пытался пойти на делегирование, но, похоже, мой делегат все же был освобожден.Я застрял с необходимостью писать в ~ / tmp?

1 Ответ

0 голосов
/ 20 февраля 2012

Смотрите мой ответ здесь для подробного объяснения настройки делегата и протокола делегата - здесь

...