将 UIPickerView 选择保存到 NSUserDefaults swift
Posted
技术标签:
【中文标题】将 UIPickerView 选择保存到 NSUserDefaults swift【英文标题】:Save UIPickerView selection to NSUserDefaults swift 【发布时间】:2015-06-04 14:59:26 【问题描述】:我正在尝试将用户的选择从 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
如果我的问题需要任何澄清,请告诉我,谢谢。
【问题讨论】:
哪里叫保存:? 它与pickerview @Larme在同一个viewcontroller类中 你在哪里检索值?您尝试在哪里显示标签上的文本? 好的,我编辑了它以显示我试图在哪里显示它@Larme 保存时race
的值是多少?
【参考方案1】:
按照下面的说明更新您的代码,它会起作用
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
race = row
每次选择一行时,都会调用此函数,参数row
的参数表示在 UIPickerView 中选择的行。
如果您将 pickerData[row]
值分配给 race
,您将在您的 UIPickerView 对象中选择的行所代表的索引号处从您的 pickerData 数组中分配一个值。
【讨论】:
以上是关于将 UIPickerView 选择保存到 NSUserDefaults swift的主要内容,如果未能解决你的问题,请参考以下文章
根据用户选择将 UIPickerView 中的数据保存在 NSUserDefaults 中,并在另一个 ViewController Objective-C 中调用