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,

Другие вопросы по тегам