我正在尝试将用户的选择从 UIPickerView 保存到 NSUserDefaults。我在 obj-c 中找到了答案,但不是很快。这是我的 UIPickerView 代码:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return pickerData[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
race = pickerData[row]
}
当您按下保存按钮时,它应该将所选内容保存到 NSUserDefaults 中。这是我的保存代码:
@IBAction func save(sender: AnyObject) {
var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(race, forKey: "race")
}
当我尝试在标签上显示文本时,它显示为空白:
override func viewDidLoad() {
super.viewDidLoad()
self.raceLabel.text = defaults.objectForKey("race") as? String
如果我的问题需要任何澄清,请告诉我,谢谢。
最佳答案
按照下面的说明更新您的代码,它将起作用
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
race = row
}
每次选择一行时,都会调用此函数,并且参数 row
的参数表示在 UIPickerView 中选择的行。
如果将 pickerData[row]
值分配给 race
,则您将在 UIPickerView 对象中所选行表示的索引号处分配 pickerData 数组中的值。
关于ios - 将 UIPickerView 选择保存到 NSUserDefaults swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30647379/