我有一个UINavigationController
,我推送并弹出视图,但是在某些视图中,我想从堆栈转到特定的视图,因此我使用此代码。它可以工作,但导航栏消失了。
for controller in self.navigationController!.viewControllers as Array {
if controller.isKind(of: HomeViewController.self) {
self.navigationController!.popToViewController(controller, animated: true)
break
}
}
答案 0 :(得分:0)
在HomeViewController中,您可以尝试以下操作:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
答案 1 :(得分:0)
您可以以编程方式显示Idem注释中提到的导航栏,或者,如果您使用的是XCode界面构建器,则可能还需要确保在属性的“模拟指标”区域中为每个视图正确定义了状态栏。视图-适用于非故事板布局。 Simulated Metrics Section of properties in XCode Interface Builder
答案 2 :(得分:0)
您可以尝试回答@ldem提出的建议
但是,您也可以尝试呈现视图而不是弹出
所以改变
self.navigationController!.popToViewController(controller, animated: true)
到
self.present(controller, animated: true, completion: nil)