2017-05-11 2 views
2

Ich möchte die Anfangswerte für eine UIPickerView auf die Picker-Funktionen auf Basis einzustellen:Wie richten Sie UIPickerView-Werte mithilfe von Informationen aus viewDidLoad ein?

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {//return number} 
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {//return String} 
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {//return number} 

ich die Funktion in generischer Form verlassen haben, weil ihre genauen Code auf die Frage ist nicht wichtig. Die generelle Frage/das Problem, das ich habe, ist, dass die Werte in den Funktionen auf Informationen beruhen sollen, die aus einer DB gezogen werden. Ich habe eine Funktion eingerichtet, um in der viewDidLoad() aufgerufen werden, die die Informationen zieht. Meine Frage ist, dass im Grunde, wird die Funktion in der viewDidLoad() aufgerufen werden (und damit die Informationen ergriffen haben), bevor die pickerView Funktionen aufgerufen werden? Ich muss wissen, ob die viewDidLoad() Abfrage kann die Informationen von den pickerView Funktionen verwendet werden, bevor die pickerView Funktionen ausgeführt werden. Wenn es danach passiert, haben die Funktionen nicht die Daten, die sie benötigen. Wie richte ich das ein?

Antwort

1

Wenn die Datenbank-Abfrage abgeschlossen ist, laden Sie einfach den Picker:

pickerView.reloadAllComponents() 

Aus der Dokumentation:

Der Aufruf dieser Methode bewirkt, dass die Picker Ansicht der Delegierten für neue Daten für alle abfragen Komponenten.

Verwandte Themen