如何在 SwiftUI 中列出一组 TabView 项目?

How to list an array of TabView items in SwiftUI?

I have a project where parts of ContentView is supposed to change when different tabs are selected.我有以下结构和 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 变量一起使用,但我也不确定如何实现它。

谢谢!

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
}