Xcode 13.1 xib项目设置UINavigationController后导航栏不显示如何解决
问题排查与解决方案
- 检查导航栏显式隐藏设置
你可以先在HomeViewViewController的viewWillAppear方法中加入代码强制显示导航栏:
同时排查是否在override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.setNavigationBarHidden(false, animated: animated) }HomeViewViewController的生命周期方法(比如viewDidLoad、viewDidAppear)中主动调用了setNavigationBarHidden(true, animated:)隐藏导航栏。 - 检查Xib相关配置
打开HomeViewViewController对应的xib文件,选中右侧属性检查器,找到Top Bar选项,确认没有设置为None,建议选择Inferred或者Navigation Bar。 - 检查导航栏外观全局配置
排查项目中是否有全局设置UINavigationBar外观的代码,比如设置了isHidden = true、或者背景色和父视图背景色完全一致导致视觉上看不见的情况,可以临时给导航栏设置一个明显的背景色测试:// 在创建导航控制器后加入以下代码测试 navController.navigationBar.backgroundColor = .systemBlue - 检查SceneDelegate代码完整性
确认你已经正确声明了window属性,属性修饰符需要是var而不是let,正确声明方式如下:class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? // 其余代码... } - 检查项目配置
确认项目的Info.plist中没有删除Scene相关配置,且Application Scene Manifest配置项完整,入口配置没有指定其他自定义的根控制器。
内容的提问来源于stack exchange,提问作者Sabaz Shereef
相关产品推荐
相关产品推荐

