【发布时间】:2021-08-18 19:14:42
【问题描述】:
我有一个 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)
【问题讨论】:
-
UserDefaults.standard.set(pizzaToppings[row], forKey: "pickerViewRow") in didSelectRow
-
为什么同时使用属性标题和行标题?为什么要使用 xcode 8?
-
@williamfinn 我尝试将 row 更改为 PizzaToppings[row] 但没有成功。
标签: swift overloading xcode8 nsuserdefaults uipickerview