所以我在Xcode中有一个UIDatePicker。我需要一种方法来自动保存UIdatePicker。这样,下次用户打开该应用程序时,UIDatePicker将显示上次关闭该应用程序之前输入的日期。这是我的一些代码
logging.getLogger('someLogger')
因此,每当我打开我的应用程序时,我都会得到今天的日期。这是屏幕截图This is the todays date
但是我打开应用程序时真正想要的是
This is a random date that I just set it to
如果您想让我更具体,或者对我有任何疑问,请发表评论。我也不太确定我的代码是否有用,但这是有用的。谢谢。
答案 0 :(得分:3)
UIDatePicker
具有属性date
,该属性表示在日期选择器中选择的当前Date
。您的目标应该是将此日期保存在某处。 UserDefaults
对于这种情况应该足够了。
首先为事件IBAction
的日期选择器创建.valueChanged
,并在更改值后,使用键UserDefaults.standard
将选择器的当前日期保存到"BirthdayDate"
@IBAction func datePickerChangedValue(_ sender: UIDatePicker) {
UserDefaults.standard.set(sender.date, forKey: "BirthdayDate")
}
然后在viewDidLoad
中,如果键BirthdayDate
已存在保存日期,则将当前日期设置为BirthdayPicker
if let date = UserDefaults.standard.object(forKey: "BirthdayDate") as? Date {
BirthdayPicker.date = date
}
override func viewDidLoad() {
super.viewDidLoad()
...
var components = DateComponents()
components.year = -300
let minDate = Calendar.current.date(byAdding: components, to: Date())
BirthdayPicker.minimumDate = minDate
BirthdayPicker.maximumDate = Date() // if `maxDate` is just current date, you can use `Date()`
if let date = UserDefaults.standard.object(forKey: "BirthdayDate") as? Date {
BirthdayPicker.date = date
}
}
@IBAction func datePickerChangedValue(_ sender: UIDatePicker) {
UserDefaults.standard.set(sender.date, forKey: "BirthdayDate")
}