我有一个UINavigationController
,我推送和弹出视图,但在某些视图中,我想从堆栈转到特定视图,所以我使用此代码。它可以工作,但导航栏消失。
for controller in self.navigationController!.viewControllers as Array {
if controller.isKind(of: HomeViewController.self) {
self.navigationController!.popToViewController(controller, animated: true)
break
}
}
在 HomeViewController 中,您可以尝试以下操作:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
您可以按照
Idem 注释中所述以编程方式显示导航栏,或者如果您使用的是 XCode 界面生成器,您可能还需要确保在视图属性的"模拟指标"区域中为每个视图正确定义状态栏 - 这适用于非情节提要布局。XCode 界面生成器中属性的模拟度量部分
你可以
尝试回答@ldem
但是,您也可以尝试显示视图而不是弹出
所以改变
self.navigationController!.popToViewController(controller, animated: true)
自
self.present(controller, animated: true, completion: nil)