Я работаю над приложением, в котором контроллер корневого представления, называемый ROOT, представляет собой просмотр контроллера вторичного представления, называет его «A», который встроен в навигационный контроллер, назовите его «NAV».Невозможно отключить два контроллера просмотра, встроенные в контроллер навигации
«ROOT» представляет «A» по тексту через следующий вызов внутри его реализации класса.
self.presentViewController(A, animated: true, completion: nil)
Кнопка в виде «A» затем нажимает «B» на «стек контроллера представления NAV».
В рамках реализации класса «В», когда кнопка нажата, я пытался отправить пользователя обратно в представление, за которое отвечал «ROOT». Следующий метод работал:
self.presentViewController(ROOT, animated: true, completion: nil)
следующие вызовы не сделали, хотя я считаю, что они должны учесть, что «А» был представлен модально на «ROOT»:
self.navigationController?.presentingViewController.dismissViewControllerAnimated(true, completion: nil)
self.navigationController?.dismissViewControllerAnimated(true, completion: nil)
Однако, я обнаружил, что оба из следующих объектов: «ноль»
self.navigationController?.presentingViewController
self.navigationController?.presentedViewController
Почему звонки, которые не работают, не работают? Разве это не правильный способ сделать это?
Разве это не то, что на самом деле работало в основном, добавляя в память еще один контроллер вида и вида, чтобы отслеживать? Таким образом, если бы я перешел с «Корни» на «А» на «Б» и снова и снова на «Корень», он в конечном итоге использовал бы слишком много памяти?
Почему два перечисленных в списке объектов отображаются как ноль?
Вы не должны представлять A, вы должны представить NAV. – rdelmar