Как отразить выбранный результат UISegmentedControl в базе данных Firebase - PullRequest
0 голосов
/ 22 сентября 2018

Здравствуйте, я новичок в программировании (Swift / Firebase) и разработке приложений.Сейчас пытается сделать профиль пользователя для подключения к базе данных.Я мог бы сделать это для данных TextFields, но не могу сделать то же самое с UISegmentedControl для переключателя Male / Female.

@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 голосов
/ 22 сентября 2018
  1. Создайте выход для UISegementControl в вашей ViewController, скажем, genderControl.
  2. В addUser(), используйте selectedIndex из UISegementControl, чтобы определитьзначение следующее, скажем, index 0 для MALE и 1 для FEMALE, затем:

    let gender = genderControl.selectedIndex == 0 ? "Male" : "Female"

  3. Теперь установите это значениеgender в пользовательском словаре, то есть

    let user = ["...": ..., "userGender": gender]

...