如何读取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
相关产品推荐
相关产品推荐

