问题描述
我试图只选择我的 JSON 文件中的一个条目,但我正在努力做到这一点。到目前为止,这是我的代码的列表部分:
var body: some View {
NavigationView {
Group {
List {
ForEach(regions) { regions in
NavigationLink(destination: RegionsListView(regions: regions)) {
RegionButtonView(regions: regions)
}
}
}
}
}
}
这是if statement
:
let regions: Region
var body: some View {
if regions.id != nil {
SCaliView()
} else if regions.id != nil {
BAView()
}
}
}
struct Region: Codable,Identifiable {
let id: Int
let name: String
let image: String
}
我想让它在选择某个 id
时,会转到某个视图。
解决方法
您可以使用 ViewBuilder 在案例之后抛出任何您想要的视图。文本视图,嵌套堆栈,尽管它有点清晰地传递了预先构造的视图。只需将 Int 替换为您的 id 类型,尽管 Int 应该可以工作,然后修改 case 语句以处理您不同的 id
@ViewBuilder func jsonSelector(using id: Int) -> some View {
switch id {
case 0:
ViewA()
case 1:
ViewB()
case 2:
ViewC()
case 3:
ViewD()
}
}
然后把它扔到你的视野中
jsonSelector(using: myID)
如果您添加一些代码,我将编辑答案以适合您的用例,但这是一般性修复