Специальная навигация с использованием сегментов раскадровки iOS
У меня есть 3 вида контроллеров: Main, List и Run. (Подробнее будет добавлено позже.) Я использую раскадровки и сегы. Целевая ОС - iOS 8. Основным является начальная сцена / контроллер. В настоящее время я не использую навигационные контроллеры.
Кнопка на Главном представляет список через шоу шоу. В зависимости от взаимодействия с пользователем, List может вернуться в Main с использованием функции раскрутки или может быть наложен на Run с использованием show segue с помощью executeSegueWithIdentifier программным способом. Все идет нормально.
После того, как List перейдет в Run, список больше никогда не будет использоваться. Запуск никогда не раскручивается в список.
Когда пользователь существует "Выполнить", запускается функция отката, возвращающая пользователя в главное состояние. Проблема в том, что List никогда не отключается. (В swift List.deinit() никогда не вызывается.) Я стараюсь обнулить все указатели на List (включая делегатов) перед переходом от List к Run. Если List разматывается к Main напрямую, без запуска Run, List освобождается, как и должно быть.
Итак, что я делаю в List-to-Run, за которым следуют сегменты Run-to-Main, которые предотвращают освобождение List?
Обратите внимание, что я не использую контроллер навигации, потому что мне не нужна панель навигации (я знаю, что она может быть скрыта), и потому что List не единственный VC, который может перейти к Run; будет несколько других.
1 ответ
При установке Main в контроллере навигации проблема исчезает, и все контроллеры представления отключаются, когда они должны. Никаких других изменений кода не требовалось.
Я нахожу этот результат удивительным. Казалось бы, это указывает на то, что навигационные контроллеры следует использовать в большинстве (всех?) Приложений раскадровки.