如何根据第一个 pickerView 的选择更改我的第二个 pickerView 数组
Posted
技术标签:
【中文标题】如何根据第一个 pickerView 的选择更改我的第二个 pickerView 数组【英文标题】:How to change my second pickerView's array based on the selection from the 1st pickerView 【发布时间】:2019-07-17 13:51:37 【问题描述】:我有两个pickerView,即pickerView1 = car_make
、pickerView2 = car_model
。
如果我选择car_make = Kia
,我希望pickerView2 显示模型数组[Rio, Venga, Ceed]
,如果我从pickerView1 中选择car_make=Ford
,那么我希望pickerView2 显示模型数组[Mondeo, Ka, Focus]
。
我已经尝试编辑didSelectRow
函数,并且成功了
if pickerView == carMakePicker
if carMake[row] == "Kia"
// How to assign new array?
但是我不知道如何将新数组分配给 carModelPicker
【问题讨论】:
您能向我们展示更多您的代码吗?您的数据源中有什么?您如何存储汽车品牌和车型? 【参考方案1】:你需要
struct Car
let name:String
let models:[String]
然后像这样填充数组
cars = [Car(name: "ppp", models: ["1","2","3"])]
picker1
的行数为cars.count
,picker2
的行数为cars[selected].models.count
在哪里
var selected = 0 // suppose you will show models of first car initially
当用户点击didSelect
做时
if pickerView == picker1
selected = row
picker2.reloadAllComponents()
【讨论】:
非常感谢!这更有意义,现在有效。现在唯一的事情是,当我选择不同的 car_Make 时,pickerView2 现在专注于底部条目而不是顶部,但这是我接下来要更仔细研究的事情以上是关于如何根据第一个 pickerView 的选择更改我的第二个 pickerView 数组的主要内容,如果未能解决你的问题,请参考以下文章