返回numberOfRowsInComponent& UIPickerview中的titleForRow基于另一个UIpickerview的didSelectRow

时间:2015-12-01 03:00:59

标签: ios swift uipickerview

大家好日子,

我尝试在主题行中解释我的查询。 据我所知,从我在代码中看到的内容,所有的pickerviews都在ViewDidLoad()中初始化,这意味着所有的都有自己的数据集。 作为我的数据验证的一部分,在这种情况下非常重要,我想根据之前的选择设置以下的选择器视图。

我遇到的问题是使用“新”数据填充以下pickerview的标题并重新加载视图。

理想情况下,我希望视图显示为先前的选择。

如果您在逻辑上知道如何做到这一点请告诉我,我将非常感谢您现在可以获得的任何帮助!

1 个答案:

答案 0 :(得分:0)

我从逻辑上确定你的意思并不确定,但你只需使用if语句和开关来确定选择的内容以及根据该选择呈现的内容。然后重新加载数据。

func pickerView(pickerView: UIPickerView,
            didSelectRow row: Int,
             inComponent component: Int)
{
    if component == 0
    {
        switch row{
        case 0:
           self.titlesForComponentOne = ["One","Two","Three","Four"]
        case 1:
           self.titlesForComponentOne = ["One","Two"]
        default:
           self.titlesForComponentOne = ["One","Three","Four"]
         }
     }else if component == 1
     {
         switch row{
         case 0:
            self.titlesForComponentTwo = ["Three", "Four"]
         case 1:
         ….
     self.picker.reloadAllComponents() // or just ones that need to be updated
}

func pickerView( pickerView: UIPickerView,
numberOfRowsInComponent component: Int) -> Int
{
    switch component{
    case 0:
       return self.titlesForComponentZero.count
    case 1:
       return self.titlesForComponentOne.count
    case 2:
       ….  
}