如何在Firebase的数据库中反映UISegmentedControl的选择结果

时间:2018-09-22 14:12:35

标签: swift database 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"一样显示。

不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. UISegementControl中为ViewController创建出口,例如说genderControl
  2. addUser()函数中,使用selectedIndex中的UISegementControl如下确定值,例如index 0代表MALE和{ {1}}用于1,然后:

    FEMALE

  3. 现在在用户词典(即

    )中设置此值let gender = genderControl.selectedIndex == 0 ? "Male" : "Female"

    gender