我想在 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)