我有一个项目,当选择了不同的选项卡时,ContentView
的某些部分应该发生更改。我具有以下结构和TabView项的数组:
struct TabItem: Identifiable {
var id = UUID()
var title: Text
var image: Image
var tag: Int
}
let tabData = [
TabItem(title: Text("Tab 1"), image: Image(systemName: "1"), tag: 1),
TabItem(title: Text("Tab 2"), image: Image(systemName: "2"), tag: 2),
TabItem(title: Text("Tab 3"), image: Image(systemName: "3"), tag: 3),
TabItem(title: Text("Tab 4"), image: Image(systemName: "4"), tag: 4)
]
我正在尝试在TabView
中列出这些内容,但不知道该怎么做。尝试以下方法,但到目前为止还没有运气。
TabView {
ContentView()
.tabItem {
// code goes here...
}.tag // tag goes here
}
我知道我也可以将TabView(selection: )
与@State
变量一起使用,但是我也不知道如何实现。
谢谢!
答案 0 :(得分:0)
TabView可以显示如下(属性selectedTab
跟踪用户选择的选项卡):
import SwiftUI
struct ContentView: View {
let tabData = [
TabItem(title: Text("Tab 1"), image: Image(systemName: "1"), tag: 1),
TabItem(title: Text("Tab 2"), image: Image(systemName: "2"), tag: 2),
TabItem(title: Text("Tab 3"), image: Image(systemName: "3"), tag: 3),
TabItem(title: Text("Tab 4"), image: Image(systemName: "4"), tag: 4)
]
@State private var selectedTab = 0
var body: some View {
TabView(selection: $selectedTab) {
ForEach(tabData) { tabItem in
Text("Screen: \(tabItem.tag)")
.tabItem {
tabItem.title
tabItem.image
}.tag(tabItem.tag)
}
}
}
}
struct TabItem: Identifiable {
var id = UUID()
var title: Text
var image: Image
var tag: Int
}