Модальные сегменты создают новые объекты? - PullRequest
1 голос
/ 25 января 2012

Я перехожу с одного контроллера вида на другой UINavigationController, используя модальный переход.Для меня важно, чтобы этот контроллер представления (и его дочерние контроллеры представления) оставался в памяти, поэтому конкретные ссылки сохраняются.Хотя, очевидно, именно этого не происходит.При отладке функции viewWillAppear ссылка rootViewController (viewControllers [0]) указывает на разные адреса памяти между вызовами (и содержит нулевые значения, моя настоящая проблема).Теперь есть две возможности, которые могут вызвать эту проблему:

  • Уничтожен UiNavigationController
  • Уничтожен rootViewController

Но сделать его действительно запутанным, нетиз них произошло;ни UINavigationController, ни rootViewController не были уничтожены (viewDidUnload не вызывается!).

Редактировать: Дальнейшие исследования обнаружили, что UINavigationController действительно воссоздается для каждого модального перехода.Я надеюсь, что, поддерживая собственность, я смогу решить проблему.

Ответы [ 2 ]

0 голосов
/ 21 августа 2014

Создайте надежную ссылку в контроллере основного вида и укажите вашим новым контроллерам вида это свойство. Это будет держать представление вокруг так долго, как вам нужно, хотя это не рекомендуется для n чисел представлений, потому что оно отрицает назначение контроллера навигации, обрабатывающего его собственное создание и удаление представлений.

0 голосов
/ 26 января 2012

В итоге я создал собственные функции IBAction, которые представляют контроллер вручную. Это прекрасно работает и кодируется менее чем за 5 минут. Достаточно один раз запустить контроллер на ViewDidLoad из раскадровки.

...