如何在保持导航栏存在的同时以模态方式呈现视图控制器。 (对于设置视图控制器)
Posted
技术标签:
【中文标题】如何在保持导航栏存在的同时以模态方式呈现视图控制器。 (对于设置视图控制器)【英文标题】:How to present view controller modally while keeping navigation bar present. (For a settings view controller) 【发布时间】:2017-11-03 16:41:26 【问题描述】:这是我所说的一个例子:https://media.giphy.com/media/3o6nUPLqKrMN64tdNm/giphy.gif 许多应用程序都这样做。添加新联系人时的联系人应用程序等。但是,当我尝试以模态方式显示我的设置页面时,导航栏消失了。知道如何解决这个问题吗?提前致谢!
【问题讨论】:
创建一个以根视图控制器为视图控制器的导航控制器,然后呈现导航控制器。 现在使用导航控制器。它只是工作 非常简单。这是一个独立的导航控制器,只是为了给完成按钮留一个位置。它有自己的导航栏——与你现有的导航控制器和导航栏无关。 【参考方案1】:创建一个以根视图控制器为视图控制器的导航控制器,然后呈现导航控制器。像这样。
let vc = // your view controller
let nav = UINavigationController(rootViewController: vc)
self.present(nav, animated: true, completion: nil)
【讨论】:
谢谢!如何从第一个视图控制器访问第二个视图控制器中的变量? @JackGruber 使用转场。将您的导航控制器作为目标控制器。并将您的嵌入式 vc 设置为topViewController
的 UINavigationController
。
谢谢!还有一个问题,我如何从 rootview 控制器访问第二个导航控制器。如果我要执行 self.navigationController!.viewControllers[0],它只会使用我原来的导航控制器。
没关系在子 ViewControllers 数组中找到它。谢谢!
调用self.dismiss(animated: true, completion: nil)
是不是以编程方式关闭 vc 的正确方法?以上是关于如何在保持导航栏存在的同时以模态方式呈现视图控制器。 (对于设置视图控制器)的主要内容,如果未能解决你的问题,请参考以下文章