You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:50:41