iOS开发:UINavigationBar顶部宽空白区域的解决问询
导航栏顶部空白问题修复
问题根源
你在scene方法中错误地将UITabBarController嵌套进了外层UINavigationController,而UITabBarController内部又创建了另一个UINavigationController作为子控制器。双层导航控制器嵌套导致顶部出现多余空白区域。
修复方案
修改根控制器配置
删除外层不必要的UINavigationController,直接将DashboardTabBarView设为window的根控制器:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } let tabBarVC = DashboardTabBarView() window = UIWindow(frame: windowScene.coordinateSpace.bounds) window?.windowScene = windowScene window?.rootViewController = tabBarVC window?.makeKeyAndVisible() }
可选:布局适配优化
如果修复后导航栏与状态栏仍有布局偏差,可在DashboardView的viewDidLoad中添加布局延伸配置:
override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .green edgesForExtendedLayout = .all // 确保视图正确延伸到导航栏下方 configureNavBar() }
修复后,导航栏会正确贴合状态栏底部,顶部空白区域将消失。
内容的提问来源于stack exchange,提问作者KwameB
相关产品推荐
相关产品推荐

