2017-08-13 1 views
1

Lorsque j'essaie d'ajouter newItem avec .count, rien ne s'affiche. quand je l'utilise, il remplace "voiture" et je ne le vois pas dans la sélection, et j'ai aussi besoin de faire défiler plusieurs fois avant que le nouvel élément apparaisse.comment ajouter un nouvel élément à un tableau à 2 composants pour UIPickerview dans swift

var picker1 = String() 
var picker2 = String() 

var pickerViewArray = [["Items", "car"], ["Action", "Turn", "Hit", "Pull", "Scrape"]] 

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

    return pickerViewArray.count 
} 

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return pickerViewArray[component].count 
} 

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return pickerViewArray[component][row] 
} 

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

    picker1 = pickerViewArray[0] [pickerView.selectedRow(inComponent: 0)] + "" 
    picker2 = pickerViewArray[1] [pickerView.selectedRow(inComponent: 1)] + "" 
} 

func addItemsToArray() { 
    stringWall = "Wall"   
    addItemAtIndex = pickerViewArray[0].count 
    pickerViewArray[0].insert(newItem, at: addItemAtIndex) 
    allRoomArray[arraySelector][wallButton] = stringWall 

    pickingRooms() 
    print(newItem) 
} 
+0

Je ne pense pas ppl faire ce que vous voulez de cette façon. Habituellement, je vais créer un 'UITableView' avec' UITableViewCell' personnalisé pour remplir la liste dynamique. 'UIPickerView' est assez prédéfini et pas tellement dynamique. – antonio081014

+0

Merci d'avoir répondu. Le meilleur conseil que vous avez donné était que ce n'était pas fait pour faire ce que je voulais. – Dmar

Répondre

1

Je ne pense pas que ppl fasse ce que vous voulez de cette façon. Habituellement, je vais créer un UITableView avec personnalisé UITableViewCell pour remplir la liste dynamique. UIPickerView est assez prédéfini et pas tellement dynamique.

Alors que votre code, si vous avez vraiment besoin de votre UIPickerView être dynamique si mal, je vais dire

Ajouter self.pickerView.setNeedsLayout() après avoir modifié votre source de données, pickerViewArray pour votre cas.

Je l'ai testé sur XCode9 beta3, cible sur iOS 8.0, avec Swift 3.