导航到特定视图时导航栏消失
Posted
技术标签:
【中文标题】导航到特定视图时导航栏消失【英文标题】:Nav bar disappears when navigating to a specific view 【发布时间】:2019-02-04 12:23:21 【问题描述】:我有一个UINavigationController
,我推送和弹出视图,但在某些视图中,我想从堆栈中转到特定视图,所以我使用此代码。它可以工作,但导航栏消失了。
for controller in self.navigationController!.viewControllers as Array
if controller.isKind(of: HomeViewController.self)
self.navigationController!.popToViewController(controller, animated: true)
break
【问题讨论】:
【参考方案1】:在您的 HomeViewController 中,您可以尝试以下操作:
override func viewWillAppear(_ animated: Bool)
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: animated)
【讨论】:
当然,这个函数“setNavigationBarHidden”正如它的名字所暗示的那样,它让你决定是隐藏还是显示你的导航栏。至于为什么当你弹出 HomeVC 时导航栏消失了,我应该检查你的代码来回答。最常见的(至少在我的项目中)是视图层次结构中的前一个 VC 隐藏了它的导航栏。【参考方案2】:您可以按照 Idem 的评论中提到的方式以编程方式显示导航栏,或者如果您使用的是 XCode 界面构建器,您可能还需要确保在属性的模拟指标区域中为每个视图正确定义状态栏查看 - 这适用于非故事板布局。 Simulated Metrics Section of properties in XCode Interface Builder
【讨论】:
【参考方案3】:你可以尝试回答@ldem提出的问题
但是你也可以尝试展示视图而不是弹出
所以改变
self.navigationController!.popToViewController(controller, animated: true)
到
self.present(controller, animated: true, completion: nil)
【讨论】:
以上是关于导航到特定视图时导航栏消失的主要内容,如果未能解决你的问题,请参考以下文章