2017-10-18 1 views
1

2に、私は自分のアプリケーションで2 Pickerviewを使用しています。しかし、それらの情報は使用中に混在します。たとえば、最初のピッカーで2.rowを選択すると、システムは2番目のピッカー行を2に変更し、逆も同じです。見当違いの情報PickerView

マイコードここで:

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]) } 

例:

IはB システムを選択したが、2

に第ピッカーを変更私は4 システムがD

第1ピッカーを変更選択
+0

また、didselectRowのpickerviewのタグをチェックする条件を追加することもできます。 – Sneha

+1

@SnehaあなたとZeeのnswerが問題を解決しました、ありがとう! – Egrimo

答えて

1

あなたのdidSelectRow方法はlike

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 
    { } 
} 
関連する問題