【问题标题】:How to change my second pickerView's array based on the selection from the 1st pickerView如何根据第一个 pickerView 的选择更改我的第二个 pickerView 数组
【发布时间】:2019-07-17 13:51:37
【问题描述】:

我有两个pickerView,即pickerView1 = car_makepickerView2 = 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

【问题讨论】:

  • 您能向我们展示更多您的代码吗?您的数据源中有什么?您如何存储汽车品牌和车型?

标签: swift xcode pickerview


【解决方案1】:

你需要

struct Car {
    let name:String
    let models:[String]
}

然后像这样填充数组

cars = [Car(name: "ppp", models: ["1","2","3"])]

picker1 的行数为cars.countpicker2 的行数为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 现在专注于底部条目而不是顶部,但这是我接下来要更仔细研究的事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 2023-04-02
  • 1970-01-01
  • 2015-10-15
  • 2023-04-06
相关资源
最近更新 更多