Ios 保存上次日期选择器选择
我有一个带有Ios 保存上次日期选择器选择,ios,swift,nsuserdefaults,uidatepicker,Ios,Swift,Nsuserdefaults,Uidatepicker,我有一个带有UIDatePicker的项目 如果我更改我的UIDatePicker值,例如在9:23时,当我重新启动应用程序时,我希望该值仍然是9:23,而不是默认值。我该怎么做 这是我的密码: @IBOutlet var myDatePicker: UIDatePicker! var datePicker = /* Get Your Date Picker from somewhere */ // Store value using User Defaults let currentDate
UIDatePicker
的项目
如果我更改我的UIDatePicker
值,例如在9:23时,当我重新启动应用程序时,我希望该值仍然是9:23,而不是默认值。我该怎么做
这是我的密码:
@IBOutlet var myDatePicker: UIDatePicker!
var datePicker = /* Get Your Date Picker from somewhere */
// Store value using User Defaults
let currentDate = datePicker.date
NSUserDefaults.standardUserDefaults().setObject(currentDate, forKey: "Current-Date")
// Retrieve Value using User Defaults
if let date = NSUserDefaults.standardUserDefaults().objectForKey("Current- Date") as? NSDate {
datePicker.setDate(date, animated: true)
}
我尝试了标准的
userDefaults
方法,但没有成功。您的密钥与的“当前日期”不同“当前日期”。这就是它不起作用的原因:
NSUserDefaults.standardUserDefaults().setObject(currentDate, forKey: "Current-Date")
...
if let date = NSUserDefaults.standardUserDefaults().objectForKey("Current- Date") as? NSDate {
使用常量可避免此错误:
let keyData = "Current-Date"
NSUserDefaults.standardUserDefaults().setObject(currentDate, forKey: keyData)
...
if let date = NSUserDefaults.standardUserDefaults().objectForKey(keyData) as? NSDate {
嗨,我为你准备了一些剪贴代码:
import UIKit
class ViewController: UIViewController {
// I have declared const key property to avoid mistakes (typo)
let dateKey = "Current-Date"
@IBOutlet weak var datePicker: UIDatePicker!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
// This line load previous state when view controller did appear
loadDate(true)
}
@IBAction func savePickerData(sender: AnyObject) {
// When user taps into 'savePickerData' button picker state is saved
saveDate()
}
func saveDate() {
NSUserDefaults.standardUserDefaults().setObject(datePicker.date, forKey:dateKey)
}
func loadDate(animation: Bool) {
guard let loadedDate = NSUserDefaults.standardUserDefaults().objectForKey(dateKey) as? NSDate else { return }
datePicker.setDate(loadedDate, animated: animation)
}
}
应该可以正常工作:)让currentDate=myDatePicker.datemyDatePicker.setDate(日期,动画:true)键“当前日期”也有问题“Current-Date”delete var datePicker=/*从某处获取日期选择器*/顺便说一句,您应该在视图中加载/设置日期选择器日期