按下按钮时如何将选择器视图中的数据存储在变量中?
How to store data from a picker view in a variable when a button is pressed?
我有一个选择器视图,其中一个组件填充了一组数据。当用户按下一个按钮时,我希望将该行中的选定数据存储在一个变量中,以便我可以使用 segue 将其发送到另一个视图控制器,并将其显示在标签中。我遇到的唯一问题是实际上要存储该数据以便在其他地方使用。我知道使用 datePicker,我可以做这样的事情来做我想做的事:
@IBAction func buttonPressed(sender: AnyObject) {
var chosenDate: NSDate = self.datePicker.date
}
这会将用户选择的日期存储在 var chosenDate 中,这是按下按钮时我想要的 pickerView。我也知道我可以使用
在 pickerView 中获取该数据
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
唯一的问题是每次用户更改值时它都会选择数据,并且它不允许我将数据存储在函数外部的变量中以便我在我的@中使用它IBAction func buttonPressed 方法。提前致谢!
You can create a function to store this date using NSUserDefaults.
This way you can access it everywhere and anytime (even after closing
the app).
func saveChosenDate(date:NSDate){
NSUserDefaults.standardUserDefaults().setObject(date, forKey: "chosenDate")
NSUserDefaults.standardUserDefaults().synchronize()
}
to load it:
func loadChosenDate()-> NSDate{
return NSUserDefaults.standardUserDefaults().objectForKey("chosenDate") as NSDate
}
to delete/reset the value of it:
NSUserDefaults.standardUserDefaults().removeObjectForKey("chosenDate")
NSUserDefaults.standardUserDefaults().synchronize()
save it
@IBAction func buttonPressed(sender: AnyObject) {
saveChosenDate(datePicker.date)
}
load it
let myDate = loadChosenDate()
好吧,在尝试了不同的方法后,我终于找到了解决问题的方法。这可能不是更有经验的开发人员所做的,但它对我来说就像我想要的那样。这是我所做的:
@IBAction func saveButtonPressed(sender: AnyObject) {
var chosen = pickerView.selectedRowInComponent(0)
var chosenString = arrayPopulatingThePickerView[chosen]
}
我需要的 pickerView 中只有一个组件,因此当按下按钮时,我将组件 0 的行号存储在一个变量中,然后我将字符串存储在另一个变量中,使其等于数组 I用于填充我的选择器视图。我通过将所选变量传递给行来检索行。
我有一个选择器视图,其中一个组件填充了一组数据。当用户按下一个按钮时,我希望将该行中的选定数据存储在一个变量中,以便我可以使用 segue 将其发送到另一个视图控制器,并将其显示在标签中。我遇到的唯一问题是实际上要存储该数据以便在其他地方使用。我知道使用 datePicker,我可以做这样的事情来做我想做的事:
@IBAction func buttonPressed(sender: AnyObject) {
var chosenDate: NSDate = self.datePicker.date
}
这会将用户选择的日期存储在 var chosenDate 中,这是按下按钮时我想要的 pickerView。我也知道我可以使用
在 pickerView 中获取该数据func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
唯一的问题是每次用户更改值时它都会选择数据,并且它不允许我将数据存储在函数外部的变量中以便我在我的@中使用它IBAction func buttonPressed 方法。提前致谢!
You can create a function to store this date using NSUserDefaults. This way you can access it everywhere and anytime (even after closing the app).
func saveChosenDate(date:NSDate){
NSUserDefaults.standardUserDefaults().setObject(date, forKey: "chosenDate")
NSUserDefaults.standardUserDefaults().synchronize()
}
to load it:
func loadChosenDate()-> NSDate{
return NSUserDefaults.standardUserDefaults().objectForKey("chosenDate") as NSDate
}
to delete/reset the value of it:
NSUserDefaults.standardUserDefaults().removeObjectForKey("chosenDate")
NSUserDefaults.standardUserDefaults().synchronize()
save it
@IBAction func buttonPressed(sender: AnyObject) {
saveChosenDate(datePicker.date)
}
load it
let myDate = loadChosenDate()
好吧,在尝试了不同的方法后,我终于找到了解决问题的方法。这可能不是更有经验的开发人员所做的,但它对我来说就像我想要的那样。这是我所做的:
@IBAction func saveButtonPressed(sender: AnyObject) {
var chosen = pickerView.selectedRowInComponent(0)
var chosenString = arrayPopulatingThePickerView[chosen]
}
我需要的 pickerView 中只有一个组件,因此当按下按钮时,我将组件 0 的行号存储在一个变量中,然后我将字符串存储在另一个变量中,使其等于数组 I用于填充我的选择器视图。我通过将所选变量传递给行来检索行。