Plusieurs pickerviews avec plusieurs textfield inputviews Swift
J'ai été à la recherche à travers le forum et rien n'a aidé.
Je suis à l'aide de 4 champs de texte dans l'une-vue-contrôleur, et pour chaque textfield, je suis en utilisant un pickerView comme le inputViews pour les objets textfield (4pickers).
Quand je clique sur le premier champ, pickerView1 avec succès s'affiche et le champ de texte affiche les données, mais lorsque je clique sur le deuxième, troisième et quatrième textfields,la première pickerView s'affiche.
Je crois que l'erreur se situe dans le inputView déclarations.
Et je serais très reconnaissant si vous pouviez aider à ajouter un bouton "terminé" pour le pickerView.
Mon code:
class ViewController1: UIViewController, UIPickerViewDelegate
{
@IBOutlet var pickerView1: UIPickerView!
@IBOutlet var pickerView2: UIPickerView!
@IBOutlet var pickerView3: UIPickerView!
@IBOutlet var pickerView4: UIPickerView!
@IBOutlet var textField1: UITextField!
@IBOutlet var textField2: UITextField!
@IBOutlet var textField3: UITextField!
@IBOutlet var textField4: UITextField!
var hazards = ["a","b", "c"]
var reasons = ["d", "e", "f"]
var site = ["v","h","i","j"]
var line = ["k", "l","m", "n"]
override func viewDidLoad() {
super.viewDidLoad()
pickerView1 = UIPickerView()
pickerView2 = UIPickerView()
pickerView3 = UIPickerView()
pickerView4 = UIPickerView()
pickerView1.delegate = self
pickerView2.delegate = self
pickerView3.delegate = self
pickerView4.delegate = self
self.textField1.inputView = self.pickerView1;
self.textField2.inputView = self.pickerView2;
self.textField3.inputView = self.pickerView3;
self.textField4.inputView = self.pickerView4;
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 0 {
return hazards.count
} else if pickerView.tag == 1 {
return reasons.count
} else if pickerView.tag == 2 {
return site.count
} else if pickerView.tag == 3 {
return line.count
}
return 1
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
if pickerView.tag == 0 {
return hazards[row]
} else if pickerView.tag == 1 {
return reasons[row]
} else if pickerView.tag == 2 {
return site[row]
} else if pickerView.tag == 3 {
return line[row]
}
return ""
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView.tag == 0 {
textField1.text = hazards[row]
} else if pickerView.tag == 1 {
textField2.text = reasons[row]
} else if pickerView.tag == 2 {
textField3.text = site[row]
} else if pickerView.tag == 3 {
textField4.text = line[row]
}
}
}
Voici un endroit pour commencer à ajouter un bouton: blog.swierczynski.net/2010/12/...
OriginalL'auteur Abubakar Moallim | 2014-10-21
Vous devez vous connecter pour publier un commentaire.
Vous utilisez le sélecteur de vues "
tag
propriété de décider de la pile de la source de données pour un sélecteur de vue, mais vous n'avez pas mis les balises d'abord. Letag
zéro par défaut, de sorte que tous les quatre sélecteur de vues montrent les mêmes données. Après l'instanciation de votre sélecteur de vues, ajouter ceci:Entendez-vous vous définir les mots-clés dans votre scénario? Lorsque vous créez de nouveaux sélecteur de points de vue (c'est à dire, avec ce code:
pickerView1 = UIPickerView()
) rien de tout cela, le programme d'installation applique.Merci!!!!!! Il a travaillé! J'ai eu l'tags défini dans l'attribut de l'inspecteur, mais pas le code.
Pouvez-vous me parler par le biais de comment convertir le code dans le tutoriel pour le bouton terminé pour swift??
Merci..Il a travaillé pour moi!
OriginalL'auteur Nate Cook