2017-10-18 3 views
1

J'utilise 2 Pickerview dans mon application. Cependant, leurs informations vont se mélanger lors de l'utilisation. Par exemple: Si je sélectionne 2.row dans le premier sélecteur, alors le système change la deuxième rangée de sélecteurs en 2, et inversement fait la même chose.Informations mal placées sur 2 PickerView

Mon code est ici:

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

Exemple:

J'ai choisi le système B changé deuxième sélecteur à 2

I sélectionné système 4 changé premier sélecteur à D

+0

Vous pouvez également ajouter une condition de vérification de l'étiquette de la vue d'ensemble dans didselectRow. – Sneha

+1

@Sneha Your et Zee's nswer résoudre le problème, merci! – Egrimo

Répondre

1

Je pense que votre méthode didSelectRow sera comme ceci

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 
    { } 
}