【发布时间】:2021-09-02 17:58:45
【问题描述】:
假设我有一个这样的数组数组:
var arrays = [["one", "two", "three", "Four"], ["four", "five", "six"]]
我的目标是为每个子数组的每个子数组创建一个列表,然后导航到下一个子数组。
Example 1: one -> (NavigationLink) two -> (NavigationLink) three -> (NavigationLink) Four.
Example 2: four -> (NavigationLink) five -> (NavigationLink) six.
每个箭头是每个 List 之间的 NavigationLink。
这是我迄今为止尝试过的:
struct ContentView: View {
let arrays = [["A", "B", "C", "D"], ["E", "F", "G", "H"]]
var body: some View {
NavigationView {
List {
ForEach(arrays, id: \.self) { item in
NavigationLink( destination: DestinationView(items: item)) {
Text(item.first!).font(.subheadline)
}
}
}
.navigationBarTitle("Dash")
}
}
}
struct DestinationView : View {
var items: [String]
var body: some View {
List {
ForEach(items, id: \.self) { item in
NavigationLink( destination: DestinationView(items: items)) {
Text(item).font(.subheadline)
}
}
}
}
}
【问题讨论】:
-
在您的示例中,您有
DestinationView链接到另一个DestinationView。这是否意味着可能存在任意数量的数据级别?因为示例集只有 2 层深。 -
@jnpdx 是的。每个子数组不一定相等。你觉得我怎么能做到这一点?
-
啊,我误解了。我仍然有点不清楚列表的每个步骤所需的输出是什么,但我给出了一个答案。如果您阐明每个阶段的意图,我们很乐意进行调整。