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

如何读取SwiftUI视图中通过.navigationTitle设置的标题值?

SwiftUI读取.navigationTitle设置的标题值的方法

不能直接通过视图实例读取.navigationTitle(_:)设置的标题,因为这个修饰符仅负责向导航容器传递标题配置,并没有为视图添加对应的存储属性。

解决方法是将标题抽成视图的显式属性,这样既能用于设置导航标题,又能直接读取:

struct ContentView: View {
    // 定义可访问的标题属性
    let navigationTitle = "Some title"
    
    var body: some View {
        VStack {
            Text("Hello, world!")
        }
        .navigationTitle(navigationTitle)
    }
}

// 直接读取属性值
let contentView = ContentView()
print(contentView.navigationTitle) // 输出 "Some title"

原理说明

.navigationTitle是View修饰符,它的作用是把标题信息传递给视图层级中的导航容器(如NavigationStack、NavigationView),不会修改原视图的结构或添加成员变量,因此直接访问contentView.title会提示“类型没有该成员”的错误。通过将标题定义为视图的属性,就能在需要的地方直接获取这个值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:34:52