你好,我是编程(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"
一样显示。
不胜感激。
答案 0 :(得分:0)
UISegementControl
中为ViewController
创建出口,例如说genderControl
。在addUser()
函数中,使用selectedIndex
中的UISegementControl
如下确定值,例如index 0
代表MALE
和{ {1}}用于1
,然后:
FEMALE
现在在用户词典(即
)中设置此值let gender = genderControl.selectedIndex == 0 ? "Male" : "Female"
gender