我在表格视图中有一个选择器视图,有两个选项男性和女性
这些都在数组中。
var MaleFemalePickerViewArray = ["Male","Female"]
如何获取所选的字符串值?
去
let selectedGender = "male"
那时我想去
将字符串值放入firebase
喜欢这样
self.ref.child("Person's Account User").child(userID!).updateChildValues(["Gender": selectedgender])
答案 0 :(得分:0)
UIPickerViewDelegate
(documented here)的方法为pickerView(_:didSelectRow:inComponent:)
(documented here)
当用户选择UIPickerView
中的项目并为您的用户选择的行提供索引时,将调用该方法。
您可以使用该索引从数据源中获取正确的元素(在您的情况下为MaleFemalePickerViewArray
)。
所以:
delegate
的{{1}}属性设置为您的班级UIPickerView
您可以采取以下措施:
didSelectRow
很高兴它有效......随意将答案标记为已接受:)
你问:
...转到下一个视图控制器我想要保护已选择性别,因为在VC中它似乎是“男性”,但它没有加载到firebase,所以我在想数组中的空字符串,并说如果selectedgender.text =“”(空字符串)提醒用户“请选择性别”
为什么不为此使用可选项?
如果您将func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
guard row < MaleFemalePickerViewArray.count else {
return
}
let selectedGender = MaleFemalePickerViewArray[row].lowercased()
//insert into firebase or do what ever you please :)
}
作为选项“移动”在您的班级上,就像这样。
selectedGender
然后在你的var selectedGender: String? = nil
中设置它:
didSelectRow:
然后,当您尝试转到下一页时,您可以进行检查,例如:
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
guard row < MaleFemalePickerViewArray.count else {
return
}
selectedGender = MaleFemalePickerViewArray[row].lowercased()
//insert into firebase or do what ever you please :)
}
这样你就不必使用额外的 - 不需要和不相关的模型 - 数组中的值
希望对你有所帮助。