Я искал решение для этого в течение довольно долгого времени, но я до сих пор не вижу, что самое лучшее решение: Я пытаюсь программным образом переключаться на контроллеры представлений, без чего-либо в раскадровке, файлы.Изменение ViewController программно
Насколько я вижу presentViewController()
просто создает «модальный», который приведет к предыдущим ViewController, чтобы остаться в памяти (проверено на это, deinit
никогда не срабатывает для первого контроллера). Решение, которое я нашел, заключается в том, чтобы переключить rootViewController: self.view.window?.rootViewController = ViewController2()
-> это огонь deinit
первого.
Хотя это решение будет работать в теории, я задаюсь вопрос ...
- Есть некоторые рекомендуемый способ или лучшая практика, как это сделать программно? Или это действительно просто изменение значения
viewRootController
? - Как вы структурируете свое приложение? Используете ли вы один ViewController и вы меняете представления? Или вы представляете другие ViewControllers как модалы с помощью currentViewController? (Я совершенно не знаком с этим, и я не могу найти хороший источник, большинство статей касаются раскадровки)
Спасибо большое!
EDIT: добавлю: у моего тестового приложения не должно быть какой-либо навигации для разных диспетчеров просмотра (никаких вкладок и ничего подобного). Он в основном работает как screen1-> screen2-> screen3-> screen4. Если нажать кнопку сброса, она вернется к экрану1. Я просто заинтересован в замене ViewControllers, больше ничего.
Это действительно зависит от того, как вы хотите структурировать навигацию в своем приложении. – Paulw11