显示没有父级的另一个导航子控制器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显示没有父级的另一个导航子控制器相关的知识,希望对你有一定的参考价值。
我有这样的导航控制器架构:
(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)出现在屏幕上。
问题是:如何在不显示(A)的情况下从(C)打开(D)?另外,之后当我使用(D)后退按钮时我需要打开(A)
答案
您可以尝试为每个vc提供一个storyboard标识符并加载它,然后分配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
另一答案
如何从(C)打开(D)而不显示(A)
将D推到C.
之后当我使用(D)后退按钮时我需要打开(A)
在推送之后,调用setViewControllers
以无形地从堆栈中移除B和C.你只剩下A和D.因此,Back按钮将从D引导到A,因为堆栈上没有其他内容。
以上是关于显示没有父级的另一个导航子控制器的主要内容,如果未能解决你的问题,请参考以下文章
css父级没包住子级是怎么回事,我用firebug查看,确实在父级的div中,但是就是没有包括子级的内容