TabView 中的 SwiftUI 导航标题
SwiftUI navigation titles within TabView
由于这个问题 中概述的答案中概述的原因,我的应用程序的菜单结构是 NavigationView
-> TabView
-> 具有不同导航标题的子视图。
问题是 .navigationTitle
为整个 TabView 提供了一个导航标题,而不是为每个子视图提供了一个。如何使用 TabView
设置多个导航标题,每个 sub-view 一个?
struct ContentView: View {
var body: some View {
NavigationView {
TabView {
Text("Hello")
.navigationTitle("Title One")
.tabItem {
Image(systemName: "square.stack")
}
Text("Hello Again")
.navigationTitle("Title Two")
.tabItem {
Image(systemName: "checkmark.square")
}
}
}
}
}
我们可以根据选项卡选择来定义标题。下面是一个简单的方法演示。用 Xcode 13 / iOS 15
测试
struct ContentView: View {
@State var selection = 1
var body: some View {
NavigationView {
TabView(selection: $selection) {
Text("Hello")
.tabItem {
Image(systemName: "square.stack")
}.tag(1)
Text("Hello Again")
.tabItem {
Image(systemName: "checkmark.square")
}.tag(2)
}
.navigationTitle(selection == 1 ? "First" : "Second") // << here !!
}
}
}
由于这个问题 NavigationView
-> TabView
-> 具有不同导航标题的子视图。
问题是 .navigationTitle
为整个 TabView 提供了一个导航标题,而不是为每个子视图提供了一个。如何使用 TabView
设置多个导航标题,每个 sub-view 一个?
struct ContentView: View {
var body: some View {
NavigationView {
TabView {
Text("Hello")
.navigationTitle("Title One")
.tabItem {
Image(systemName: "square.stack")
}
Text("Hello Again")
.navigationTitle("Title Two")
.tabItem {
Image(systemName: "checkmark.square")
}
}
}
}
}
我们可以根据选项卡选择来定义标题。下面是一个简单的方法演示。用 Xcode 13 / iOS 15
测试struct ContentView: View {
@State var selection = 1
var body: some View {
NavigationView {
TabView(selection: $selection) {
Text("Hello")
.tabItem {
Image(systemName: "square.stack")
}.tag(1)
Text("Hello Again")
.tabItem {
Image(systemName: "checkmark.square")
}.tag(2)
}
.navigationTitle(selection == 1 ? "First" : "Second") // << here !!
}
}
}