swift - 如何在 Firebase 的数据库中反映 UISegmentedControl 的选择结果
问题描述
您好,我是编程(Swift/Firebase)和开发应用程序的新手。现在正在尝试使用户配置文件连接到数据库。我可以为 TextFields 数据做同样的事情,但不能对男性/女性开关的 UISegmentedControl 做同样的事情。
@IBAction func saveProfileButton(_ sender: Any) {
if nameTextField.text! == "" {
print("enter something")
} else {
addUser()
}
}
@objc func valuChange() {
switch genderSegControl.selectedSegmentIndex {
case 0:
let zero = String("Male")
case 1:
let one = String("Female")
default:
return
}
}
func addUser() {
let genderChanged = genderSegControl?.addTarget(self, action: #selector(MainViewController.valuChange), for: UIControlEvents.valueChanged)
let userGender = String(describing: genderChanged!)
let uidUser = Auth.auth().currentUser?.uid
let user = ["...": ..., "userGender": userGender as! String]
refUsers.child(uidUser!).setValue(user)
}
但是当我检查 Firebase 的数据库节点时,它只显示"userGender: Optional(())"
。我尝试了许多不同的方式,但无法让它显示为"userGender: Male"
或"userGender: Female"
。
将不胜感激任何建议。
解决方案
- 为
UISegementControl
你的ViewController
,比如说genderControl
。 在
addUser()
函数中,使用 的selectedIndex
来UISegementControl
确定值如下,sayindex 0
is forMALE
&1
is forFEMALE
then:let gender = genderControl.selectedIndex == 0 ? "Male" : "Female"
现在在用户字典中设置这个值
gender
,即let user = ["...": ..., "userGender": gender]
推荐阅读
- python - 如何使用 python 多处理使类变量在 windows 和 linux 上的行为相同?
- curl - 如何修复 AWS EC2 卷曲错误 303 查看其他
- groovy - 如何从groovy中的地图中获取最后一个KEY?
- akka - 如何从入口返回值
- android - RecyclerView 中的 CustomView 出现故障(项目被交换、消失或重复)
- xcode - react-native 0.60.4 xcode 构建失败
- html - 100% 高度不适用于移动视图上的身体背景图像
- python - np.abs() 和 pd.TimedeltaIndex 为列表中的 pd.TimedeltaIndex(['0 days']) 抛出错误
- swift - 如何使用 IBInspectable 在属性检查器中设置夜间模式和日间模式颜色?
- algorithm - 加权无向树获得的最大利润