SwiftUI-何时每个列表视图的内容取决于上一个列表视图中的选择的最佳方法?

时间:2020-09-19 14:50:35

标签: swift listview swiftui swiftui-navigationlink swiftui-navigationview

我有3个简单的数组:

var myContintents = [Europe,Africa]
var myCountries = [UK, France, Senegal]
var myCities = [London, Birmingham, Paris, Dakar]

每个数组填充一个列表视图,并带有指向下一个列表视图的导航链接

Listview 1 = Contintents
Listview 2 = Countries
Listview 3 = Cities

但是,我在如何使这个人靠上方面遇到麻烦

例如,

如果在Listview1上选择了“欧洲”,则Listview2应该仅包含英国和法国(不包括塞内加尔,因为塞内加尔不在欧洲)

如果在Listview 2上选择了“法国”,则Listview 3应该只包含巴黎

任何有关如何处理此问题的建议都将受到欢迎

谢谢

1 个答案:

答案 0 :(得分:1)

您应该学习如何创建自己的自定义类型,对于这种情况,以下内容应该适用

struct Continent {
    let name: String
    let countries: [Country]
}

struct Country {
    let name: String
    let cities: [City] //Or skip the last struct and make this a [String]
}

struct City {
    let name: String
}

现在你有洲的阵列中的第一列表视图和当选择一个大陆然后填充在下一个与各国的countries数组属性

这是一个小例子

let continents = [
    Continent(name: "Europe",
              countries: [
                Country(name: "UK",
                        cities: [
                            City(name: "London"),
                            City(name: "Birmingham")
                        ]),
                Country(name: "France",
                        cities: [
                            City(name: "Paris")
                        ])
              ])
]