Hello I'm newbie in programming (Swift/Firebase) and developing application. Now is trying to make a user profile to be connected to database. I could do it for TextFields data, but cannot do the same with UISegmentedControl for Male/Female switch.
@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)
}
but when I check Firebase's Database nodes it shows "userGender: Optional(())"
and only. I tried in many different ways but couldn't get it to be shown like "userGender: Male"
or "userGender: Female"
.
Would appreciate any advice.
UISegementControl
in your ViewController
, say genderControl
.In addUser()
function, use the selectedIndex
of the UISegementControl
to determine the value as follows, say index 0
is for MALE
& 1
is for FEMALE
then:
let gender = genderControl.selectedIndex == 0 ? "Male" : "Female"
Now set this value gender
in user dictionary, i.e.
let user = ["...": ..., "userGender": gender]