所以我有3个视图控制器(和导航视图控制器)。从VC1开始,我推送到VC2然后当VC2的场景完成时,我弹出VC2然后推送到VC3。唯一的问题是用户可以看到堆栈推/弹出。无论如何我可以推VC3然后弹出VC2而不注意它?我知道它是一个堆栈,所以你不一定能像数组那样选择元素,但也许有一种方法可以从VC3中弹出VC2?
我看到了一些stackoverflow资源,但是从2011年到2014年都是旧的语法,并且已经过时了。有人有什么想法吗?
答案 0 :(得分:1)
是的,你可以。您可以使用setViewControllers:animated:
方法。像这样:
navigationController?.setViewControllers([vc1, vc3], animated: true)
这会在从堆栈中移除vc2
并将其替换为vc3
时动画推送。有关方法here的更多信息。
如果您在vc1
中没有引用v2
(而您可能没有),则可以执行此操作:
navigationController?.setViewControllers(navigationController!.viewControllers.first!, vc3], animated: true)
哦,如果您希望在没有任何动画的情况下推动vc3
,那么显然只需使用animated: false
调用该方法。