我想在 Swift UIPickerView 中保存选定的选项
I want to save a Selected Option in a Swift UIPickerView
所以我有一个 UIPicker 视图。现在我已经选择了一些东西,我想保存那个选择,这样下次我回到那个页面时,我选择的相同选项仍然存在。现在它只是转到选择的第一个选项,即克。
谢谢,我是 Swift
的新手
这是我的代码
@IBOutlet weak var pickerView: UIPickerView!
var measurementTypes = ["Grams","Ounces", "Pounds"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return measurementTypes.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return measurementTypes[row]
}
// Catpure the picker view selection
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selected = measurementTypes[row]
// This method is triggered whenever the user makes a change to the picker selection.
// The parameter named row and component represents what was selected.
}
您只需将选中的行号保存在UserDefaults
中,以便下次访问。
// Capture the picker view selection
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selected = measurementTypes[row]
// Save selected row integer in User Defaults
UserDefaults.standard.set(row, forKey: "pickerViewRow")
}
然后,在 override func viewDidLoad()
中您可以检索此值并设置选择器视图:
let row = UserDefaults.standard.integer(forKey: "pickerViewRow")
pickerView.selectRow(row, inComponent: 0, animated: False)
所以我有一个 UIPicker 视图。现在我已经选择了一些东西,我想保存那个选择,这样下次我回到那个页面时,我选择的相同选项仍然存在。现在它只是转到选择的第一个选项,即克。
谢谢,我是 Swift
的新手这是我的代码
@IBOutlet weak var pickerView: UIPickerView!
var measurementTypes = ["Grams","Ounces", "Pounds"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return measurementTypes.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return measurementTypes[row]
}
// Catpure the picker view selection
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selected = measurementTypes[row]
// This method is triggered whenever the user makes a change to the picker selection.
// The parameter named row and component represents what was selected.
}
您只需将选中的行号保存在UserDefaults
中,以便下次访问。
// Capture the picker view selection
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selected = measurementTypes[row]
// Save selected row integer in User Defaults
UserDefaults.standard.set(row, forKey: "pickerViewRow")
}
然后,在 override func viewDidLoad()
中您可以检索此值并设置选择器视图:
let row = UserDefaults.standard.integer(forKey: "pickerViewRow")
pickerView.selectRow(row, inComponent: 0, animated: False)