我有这样的导航控制器模式:
(A)RootVC
|
-(B)ChildVC_1
| |
| -(C)ChildVC_1_2
|
-(D)ChildVC_2
我需要从(C)开始(D)。我在(C)中使用代码:
navigationController?.popToViewController(...)
rootVC.performSegue(withIdentifier: "ChildVC_2", sender: nil)
它工作正常。除了一个问题:首先我看到(A)和只有在那之后,(D)出现在屏幕上。
问题是:如何从(C)中打开(D)而不显示(A)?
另外,在那之后,当我使用来自(D)的后退按钮时,我需要打开(A)
最佳答案
您可以尝试给每个vc一个故事板标识符并加载它,然后分配navigationController的viewControllers
属性
let rootVC = storyboard!.instantiateViewController(withIdentifier: "rootId")
let dVC = storyboard!.instantiateViewController(withIdentifier: "dId")
self.navigationController?.setViewControllers([rootVC,dVC],animated:true) // set it to false if you want