从UIPickerView中获取字符串值从数组中选择字符串值? (SWIFT / xcode中)

时间:2017-04-28 10:47:16

标签: swift xcode uipickerview

我在表格视图中有一个选择器视图,有两个选项男性和女性

这些都在数组中。

var MaleFemalePickerViewArray = ["Male","Female"]

如何获取所选的字符串值?

let selectedGender = "male"
那时我想去 将字符串值放入firebase

喜欢这样

self.ref.child("Person's Account User").child(userID!).updateChildValues(["Gender": selectedgender])

1 个答案:

答案 0 :(得分:0)

UIPickerViewDelegatedocumented here)的方法为pickerView(_:didSelectRow:inComponent:)documented here

当用户选择UIPickerView中的项目并为您的用户选择的行提供索引时,将调用该方法。

您可以使用该索引从数据源中获取正确的元素(在您的情况下为MaleFemalePickerViewArray)。

所以:

  1. delegate的{​​{1}}属性设置为您的班级
  2. 实施UIPickerView
  3. 宾果:)
  4. 您可以采取以下措施:

    didSelectRow

    更新

    很高兴它有效......随意将答案标记为已接受:)

    你问:

      

    ...转到下一个视图控制器我想要保护已选择性别,因为在VC中它似乎是“男性”,但它没有加载到firebase,所以我在想数组中的空字符串,并说如果selectedgender.text =“”(空字符串)提醒用户“请选择性别”

    为什么不为此使用可选项?

    如果您将func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { guard row < MaleFemalePickerViewArray.count else { return } let selectedGender = MaleFemalePickerViewArray[row].lowercased() //insert into firebase or do what ever you please :) } 作为选项“移动”在您的班级上,就像这样。

    selectedGender

    然后在你的var selectedGender: String? = nil 中设置它:

    didSelectRow:

    然后,当您尝试转到下一页时,您可以进行检查,例如:

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        guard row < MaleFemalePickerViewArray.count else {
            return
        }
    
        selectedGender = MaleFemalePickerViewArray[row].lowercased()
        //insert into firebase or do what ever you please :)
    }
    

    这样你就不必使用额外的 - 不需要和不相关的模型 - 数组中的值

    希望对你有所帮助。