2017-10-18 52 views
1

我在我的應用程序中使用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]) } 

實施例:

我選擇的B 系統改變第二選擇器2

我選擇4 系統改變的第一選擇器來d

+0

您還可以在didselectRow中添加檢查pickerview標籤的條件。 – Sneha

+1

@Sneha你和Zee的nswer解決了這個問題,謝謝! – Egrimo

回答

1

我認爲你的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 
    { } 
}