如何解决如何在 UIPickerView 中保存选定的选项
我有一个 PickerView,它应该保存选定的 pickerView,但它只选择了默认选项。我尝试使用用户默认值,但没有用。
我使用的是 Xcode 8。
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView,numberOfRowsInComponent component: Int) -> Int {
return pizzaToppings.count
}
func pickerView(_ pickerView: UIPickerView,didSelectRow row: Int,inComponent component: Int) {
pizzaTextField.text = pizzaToppings[row]
UserDefaults.standard.set(row,forKey: "pickerViewRow")
}
func pickerView(_ pickerView: UIPickerView,attributedTitleForRow row: Int,forComponent component: Int) -> NSAttributedString? {
let attrb = NSAttributedString(string: pizzaToppings[row])
return attrb
}
func pickerView(_ pickerView: UIPickerView,titleForRow row: Int,forComponent component: Int) -> String? {
return pizzaToppings[row]
}
override func viewDidLoad() {
let row = UserDefaults.standard.integer(forKey: "pickerViewRow")
pickerView.selectRow(row,inComponent: 0,animated: false)
解决方法
让我们看看你在这里做什么。在 viewDidLoad()
中,您找到第一次为 0 的行(保存在 pickerViewRow
的 UserDefaults
)。然后选择第一行 - 默认行。如果您点击选择器视图的一行,则将该行设置为 UserDefaults。这里的问题是在 viewDidLoad()
中,您的 UI 选择器视图没有来自您的数据源的元素。您可以将 viewDidLoad
的代码移动到 viewDidAppear
内,它应该可以工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。