Animate Замена viewControllers на UINavigationController

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

Итак, чтобы добавить одно представление в текущий стек, я знаю, что могу сделать это:

self.navigationController!.pushViewController(myController, animated: true)

Это будет перемещать представление в стек, анимированное.

И я знаю, что могу это сделать

self.navigationController!.viewControllers = newControllersStack

Но это не анимировано и кажется хакерским, поскольку оно просто внедряется в поток стека без какого-либо надлежащего потока. Что я хочу сделать это

self.navigationController!.changeViewControllers(newControllersStack, animated: true)

Есть ли способ сделать это? Я заглянул в панель вкладок, но мне пришлось бы скрыть вкладки (используя боковое меню для навигации), и даже тогда он анимирует переходы между UINavigationControllers, а не представления внутри одного контроллера навигации.


person steventnorris    schedule 27.10.2016    source источник
comment
А что насчет UINavigationController.setViewControllers(_:animated:)?   -  person Leo Natan    schedule 28.10.2016
comment
Это антипаттерн. Находясь в стеке навигации, пользователи ожидают, что смогут перемещаться по стеку в том же порядке, в котором они достигли текущего контроллера. Я бы не предлагал заменять стек таким образом.   -  person Leo Natan    schedule 28.10.2016
comment
@LeoNatan Вот дерьмо. Как я по этому скучал. Добавьте это как ответ, и я приму. Похоже, это именно то, что мне нужно. В моем случае это имеет смысл. Это новый стек навигации, похожий на контроллер вкладок, когда они выбирают что-то в боковом меню.   -  person steventnorris    schedule 28.10.2016
comment
Прохладный. Добавлено как ответ.   -  person Leo Natan    schedule 28.10.2016
comment
Приму в 5 @LeoNatan. Вы дошли до него так быстро, что я еще не пришел к принятому сроку для принятия ответа.   -  person steventnorris    schedule 28.10.2016
comment
Ха-ха, не беспокойся. Спасибо   -  person Leo Natan    schedule 28.10.2016


Ответы (1)


Используйте 1_.

person Leo Natan    schedule 27.10.2016