基于 firebase 数据的负载选择器
Load picker based on firebase data
我正在尝试使用基于 firebase 字符串的矢量加载选择器。
这是我的变量:
var modeOfLearning = [String] ()
let modeOfLearning1 = ["Select Mode:",
"In Person",
"Web-based",
"Simulation"]
let modeOfLearning2 = ["Select Mode:",
"In Person",
"Web-based"]
在 viewDidLoad 中,我从 firebase 获取字符串的值并使用 modeOfLearning1 或 2 加载 var modeOfLearning:
override func viewDidLoad() {
super.viewDidLoad()
let userEmail : String = (Auth.auth().currentUser?.email)!
Database.database().reference().child("Student Profiles").queryOrdered(byChild: "email").queryEqual(toValue: userEmail).observe(.childAdded) { (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String,String>
let ustYear = snapshotValue["ustyear"]
if ustYear == "First Year" {
self.modeOfLearning = self.modeOfLearning1
} else if ustYear == "Second Year" {
self.modeOfLearning = self.modeOfLearning2
}}
这是 pickerView 函数:
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return self.modeOfLearning.count}
pickerView 函数中 modeOfLearning 的计数始终为零。这告诉我 pickerView func 在 viewDidLoad 完成之前是 运行。我该怎么做才能让 pickerView func 等到 var modeOfLearning 加载完毕?
如有任何帮助,我们将不胜感激!提前致谢!
而不是这样做 self.modeOfLearning = self.modeOfLearning1
尝试 self.modeOfLearning.append(self.modeOfLearning)
,并在完成处理程序调用 pickerview.reloadAllComponents()
中触发选择器视图函数。
我正在尝试使用基于 firebase 字符串的矢量加载选择器。
这是我的变量:
var modeOfLearning = [String] ()
let modeOfLearning1 = ["Select Mode:",
"In Person",
"Web-based",
"Simulation"]
let modeOfLearning2 = ["Select Mode:",
"In Person",
"Web-based"]
在 viewDidLoad 中,我从 firebase 获取字符串的值并使用 modeOfLearning1 或 2 加载 var modeOfLearning:
override func viewDidLoad() {
super.viewDidLoad()
let userEmail : String = (Auth.auth().currentUser?.email)!
Database.database().reference().child("Student Profiles").queryOrdered(byChild: "email").queryEqual(toValue: userEmail).observe(.childAdded) { (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String,String>
let ustYear = snapshotValue["ustyear"]
if ustYear == "First Year" {
self.modeOfLearning = self.modeOfLearning1
} else if ustYear == "Second Year" {
self.modeOfLearning = self.modeOfLearning2
}}
这是 pickerView 函数:
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return self.modeOfLearning.count}
pickerView 函数中 modeOfLearning 的计数始终为零。这告诉我 pickerView func 在 viewDidLoad 完成之前是 运行。我该怎么做才能让 pickerView func 等到 var modeOfLearning 加载完毕?
如有任何帮助,我们将不胜感激!提前致谢!
而不是这样做 self.modeOfLearning = self.modeOfLearning1
尝试 self.modeOfLearning.append(self.modeOfLearning)
,并在完成处理程序调用 pickerview.reloadAllComponents()
中触发选择器视图函数。