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

Swift开发疑问:导航栏是否必须添加.navigationTitle()才能显示?

SwiftUI导航栏必须加navigationTitle才显示的问题解析

原因说明

在iOS 14及以后的SwiftUI版本中,NavigationView的导航栏默认是惰性加载的——只有当你添加了navigationTitle、工具栏按钮(toolbar)这类需要显示在导航栏上的内容时,系统才会渲染导航栏。这是苹果的设计优化,避免无意义的视图渲染。

你提到教学视频里似乎可以不用加,大概率是视频使用了更早的SwiftUI版本(iOS 13及以前),那个版本的NavigationView默认会显示空导航栏,不需要额外触发。

解决方案

如果只想显示一个空的导航栏,有两种简单方法:

方法1:添加空标题

给视图加上空字符串的navigationTitle修饰符,就能触发导航栏显示:

struct ContentView: View {
    var body: some View {
        NavigationView {
            Form {
                Section {
                    Text("Hello, world!")
                }
            }
            .navigationTitle("") // 空标题触发导航栏显示
        }
    }
}

方法2:添加空工具栏元素

通过toolbar添加一个空的视图元素,同样能触发导航栏渲染:

struct ContentView: View {
    var body: some View {
        NavigationView {
            Form {
                Section {
                    Text("Hello, world!")
                }
            }
            .toolbar {
                ToolbarItem(placement: .principal) {
                    EmptyView()
                }
            }
        }
    }
}

补充提示

如果之后需要在导航栏添加按钮(比如返回、操作按钮),只要添加对应的toolbar元素,导航栏也会自动显示,不需要额外加标题。

内容的提问来源于stack exchange,提问作者Timothy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:48:20