我想通过一个视图(“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?