所以我有3个视图控制器(和一个nav视图控制器)。从VC1开始,我推到VC2,然后当VC2的场景完成时,我弹出VC2,然后推到VC3。唯一的问题是,用户可以看到堆栈推送/弹出。不管怎么说,我可以推送VC3然后弹出VC2而不被注意到吗?我知道这是一个堆栈,所以您不一定可以像数组那样选择元素,但是也许有一种方法可以从VC2中弹出VC3?
我看到了一些堆叠溢出资源,但都是从2011-2014年开始使用的旧语法,而且非常过时。有人有什么想法吗?
发布于 2017-02-09 23:20:01
是的你可以。您可以使用setViewControllers:animated:方法。如下所示:
navigationController?.setViewControllers([vc1, vc3], animated: true)这将在从堆栈中删除vc2并将其替换为vc3时激活推送。有关方法这里的更多信息。
更新:
如果您在v2中没有对v2的引用(很可能没有),那么您可以这样做:
navigationController?.setViewControllers(navigationController!.viewControllers.first!, vc3], animated: true)哦,如果您想在没有任何动画的情况下推动vc3,那么显然,只需使用animated: false调用该方法即可。
https://stackoverflow.com/questions/42148617
复制相似问题