显示没有父级的另一个导航子控制器

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,因为堆栈上没有其他内容。

enter image description here

以上是关于显示没有父级的另一个导航子控制器的主要内容,如果未能解决你的问题,请参考以下文章

css父级没包住子级是怎么回事,我用firebug查看,确实在父级的div中,但是就是没有包括子级的内容

Wordpress 3.5 - 如何仅使用 wp_nav_menu 显示父级的子菜单?

呈现另一个不是父级的视图控制器

子视图有父级的阴影,即使有背景

子元素设置margin-top影响到父级的原因及办法

创建 API 网关资源的 Terraform 错误抱怨具有相同父级的另一个资源已经具有此名称