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")
}