gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 08:11:18 26 4
gpt4 key购买 nike

我的 TableView 中有一个 pickerview,其中有两个选项 Male 和 Female

这些在数组中。

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

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

去吧

let selectedGender = "male"

因为那时我想去将字符串值放入 firebase

像这样

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

最佳答案

UIPickerViewDelegate ( documented here ) 具有方法 pickerView(_:didSelectRow:inComponent:) ( documented here )

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

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

所以:

  1. UIPickerViewdelegate 属性设置为您的类
  2. 实现didSelectRow
  3. 宾果 :)

你可以按照以下方式做一些事情:

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 :)
}

更新

很高兴它起作用了...随意将答案标记为已接受 :)

你问:

...to go to the next view controller i want to guard that the have chosen a gender as at the moment in the VC it appears to be on "male" but it doesnt load to firebase , so i was thinking putting an empty string in the array and saying if selectedgender.text = "" (empty string) alert the user " please select a gender"

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

如果您像这样“移动”您的 selectedGender 作为类(class)的可选内容。

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 :)
}

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

func toNext() {
if selectedGender == nil {
//The user has not selected a gender, so show an alert and stay on this page
} else {
//Onwards
}
}

这样你就不必在你的数组中使用额外的 - 不需要并且与你的模型无关 - 值

希望对你有帮助。

关于swift - 从 UIPickerView 中获取字符串值从数组中选择字符串值? ( swift/xcode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43678362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com