我想通过一个视图(“MarketsListView”或“ProductsListView”)作为结构(“ConfigItem”)上的变量,该视图具有不同的信息,按钮等。
什么是最好的方法?谢谢。
编辑:显然当前代码有错误,我被困在那里。

import SwiftUI

struct ConfigItem {
    var label: String
    var view: AnyView?
}

var configItems: [ConfigItem] = [
    ConfigItem(label: "Markets", view: MarketsListView),
    ConfigItem(label: "Products", view: ProductsListView)
]

struct ConfigView: View {
    var body: some View {
        NavigationView {
            Form {
                List(configItems, id: \.label) { configItem in
                    NavigationLink(destination: configItem.view) {
                        Text(configItem.label)
                    }
                }
            }
            .navigationBarTitle("Configuration")
        }
    }
}

struct ConfigView_Previews: PreviewProvider {
    static var previews: some View {
        ConfigView()
    }
}

最佳答案

这是固定的部分

struct ConfigItem {
    var label: String
    var view: AnyView
}

var configItems: [ConfigItem] = [
    ConfigItem(label: "Markets", view: AnyView(MarketsListView())),
    ConfigItem(label: "Products", view: AnyView(ProductsListView()))
]
您也可以在此答案中考虑通用方法SwiftUI - how to avoid navigation hardcoded into the view?

10-07 14:28