Dans ma vue de sélecteur, je souhaite que la ligne par défaut soit zéro. Cette ligne a une valeur de 1. Je veux être en mesure de ne toucher à rien sur le contrôleur de vue, sauf un bouton. Je sais qu'il y a des questions similaires mais elles n'ont pas fonctionné pour moi.PickerView Ligne par défaut sélectionnée mais renvoyée à zéro sauf si la vue du sélecteur est déplacée
override func viewWillAppear(_ animated: Bool) {
self.pickerView.delegate = self
self.pickerView.dataSource = self
self.pickerView.selectRow(0, inComponent: 0, animated: true)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return String(numbers[row])
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return numbers.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
therow = pickerView.selectedRow(inComponent: 0) + 1
}
puis
@IBAction func submitTapped (_ expéditeur: Tous) { Imprimer (therow) }
Lorsque je tape envoyer et imprimer la valeur à la ligne 0, il est 0, mais si je remue la vue du sélecteur et la remets sur la ligne 0, elle imprime 1. Je dois être en mesure de ne rien toucher sur la vue du sélecteur et de lui renvoyer la valeur correcte de la ligne par défaut.
Je pense que vous devriez utiliser "theRowIndex = ligne" dans la méthode didSelectRow –
theRowIndex est @SaurabhPrajapati inconnu –
est 'didSelectRow' appelé du tout lorsque vous appuyez seulement sur le bouton? – Sweeper