2 PickerView 上的错位信息

Misplaced Information on 2 PickerView

我在我的应用程序中使用了 2 个 Pickerview。然而他们的信息在使用时会混合。例如:如果我在第一个选择器中 select 2.row,则系统将第二个选择器行更改为 2,反向也是如此。

我的代码在这里:

    override func viewDidLoad() {
    super.viewDidLoad()

    petArray = ["A","B","C","D"]

    feedTimeArray = ["1","2","3","4"]

}    

func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    if pickerView.tag == 1{
        return petArray.count
    }
    if pickerView.tag == 2 {
        return feedTimeArray.count
    }
    return 0
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    if pickerView.tag == 1 {
        return petArray[row]
    }
    if pickerView.tag == 2{
        return feedTimeArray[row]
    }
    return ""
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    selectedFeed = feedTimeArray[row]
    print(feedTimeArray[row])

    if selectedFeed == feedTimeArray[1] {
        //case 1
    }

    if selectedFeed == feedTimeArray[2] {
        //case 2
    }
    if selectedFeed == feedTimeArray[3] {
        //case 3
    }

    selectedPet = petArray[row]
    print(petArray[row]) }

示例:

我select编辑了B 系统将第二个选择器更改为 2

我select编辑了 4 系统将第一个选择器更改为 D

我想你的didSelectRow方法应该是这样的

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

 if pickerView.tag == 1
 {
    selectedFeed = feedTimeArray[row]
    print(feedTimeArray[row])

     if selectedFeed == feedTimeArray[1] {
     //case 1
     }

      if selectedFeed == feedTimeArray[2] {
      //case 2
     }
     if selectedFeed == feedTimeArray[3] {
     //case 3
     }
 }
 else if pickerView.tag == 2
 {
     selectedPet = petArray[row]
     print(petArray[row]) 
 }
 else
   {   }
}