让我们按照我的常规流程说出来 VC1 - > VC2 - > VC3 - > VC4
但我要求当我触摸VC1上的特殊按钮时,需要转到VC4。
没问题。问题是当我点击VC4上的后退按钮时,它需要返回VC3而不是VC1。
我已经尝试过从VC1推送 - > VC2和VC2 - >没有动画的VC3再VC3 - > VC4带有动画,但你可以看到VC3的一瞥看起来很糟糕。
有什么想法吗?
答案 0 :(得分:2)
我认为在这种特定情况下,您可以在呈现第4个viewController后在导航控制器堆栈上插入视图控制器
if let navigationController = navigationController {
navigationController.pushViewController(vc4, animated: true)
let vc3Index = navigationController.viewControllers.count - 1
navigationController.viewControllers.insert(vc3, atIndex: vc3Index)
}
当用户从VC4返回时,这应该将VC3放在下一行。未经测试的代码,顺便说一句。
答案 1 :(得分:1)
您可以修改UINavCon' viewControllers
以达到您想要的顺序。
func specialButtonInVc1() {
self.navigationController?.pushViewController(fourth, animated: true)
self.navigationController?.viewControllers = [self, second, third,fourth]
}