流行的旧viewController

时间:2017-02-09 23:06:44

标签: swift uiviewcontroller pushviewcontroller popviewcontroller

所以我有3个视图控制器(和导航视图控制器)。从VC1开始,我推送到VC​​2然后当VC2的场景完成时,我弹出VC2然后推送到VC​​3。唯一的问题是用户可以看到堆栈推/弹出。无论如何我可以推VC3然后弹出VC2而不注意它?我知道它是一个堆栈,所以你不一定能像数组那样选择元素,但也许有一种方法可以从VC3中弹出VC2?

我看到了一些stackoverflow资源,但是从2011年到2014年都是旧的语法,并且已经过时了。有人有什么想法吗?

1 个答案:

答案 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调用该方法。

相关问题