Pop old viewController
Таким образом, у меня есть 3 контроллера представления (и контроллер представления навигации). Начиная с VC1, я нажимаю на VC2, затем, когда сцена для VC2 готова, я нажимаю VC2, затем нажимаю на VC3. Единственная проблема с этим состоит в том, что пользователь может видеть толчок / выталкивание стека. Могу ли я в любом случае нажать VC3, а затем выдвинуть VC2, не заметив этого? Я знаю, что это стек, поэтому вы не можете выбирать элементы, как массивы, но, может быть, есть способ извлечь VC2 из VC3?
Я видел несколько ресурсов stackru, но все в старом синтаксисе с 2011-2014 и очень устарели. У кого-нибудь есть идеи?
1 ответ
Да, ты можешь. Вы можете использовать setViewControllers:animated:
метод. Как это:
navigationController?.setViewControllers([vc1, vc3], animated: true)
Это оживит толчок при удалении vc2
из стека и замены его на vc3
, Больше информации о методе здесь.
Обновить:
Если у вас нет ссылки на vc1
в v2
(и вы, вероятно, не), вы можете сделать это:
navigationController?.setViewControllers(navigationController!.viewControllers.first!, vc3], animated: true)
Ох, и если вы хотите подтолкнуть vc3
без какой-либо анимации, тогда, очевидно, просто вызовите метод с animated: false
,