gpt4 book ai didi

swift - 从 UIDatePicker 保存选择

转载 作者:搜寻专家 更新时间:2023-11-01 06:26:23 25 4
gpt4 key购买 nike

所以我在 Xcode 中有一个 UIDatePicker。我需要一种方法来自动保存 UIdatePicker。这样下次用户打开应用程序时,UIDatePicker 会显示与上次关闭应用程序之前输入的相同日期。这是我的一些代码

@IBOutlet weak var BirthdayPicker: UIDatePicker!
...
override func viewDidLoad() {
super.viewDidLoad()

//__________________________________________________________________________
// This makes sure the user doesnt use a date after the current date
var components = DateComponents()
components.year = -300

let minDate = Calendar.current.date(byAdding: components, to: Date())

components.year = 0
components.day = 0
components.hour = 0
components.minute = 0
components.second = 0
let maxDate = Calendar.current.date(byAdding: components, to: Date())

BirthdayPicker.minimumDate = minDate
BirthdayPicker.maximumDate = maxDate
//____________________________________

所以每当我打开我的应用程序时,我都会得到今天的日期。这是屏幕截图 This is the todays date

但我打开应用时真正想要的是

This is a random date that I just set it to

如果你想让我说得更具体或者对我有任何问题,请发表评论。我也不确定我的代码是否有用,但确实有用。谢谢。

最佳答案

UIDatePicker 具有属性 date 表示在日期选择器中选择的当前 Date。您的目标应该是将此日期保存在某个地方。 UserDefaults 对于这种情况应该足够了。

开始为事件 .valueChanged 的日期选择器创建 IBAction,当值更改时,将选择器的当前日期保存到 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")
}

关于swift - 从 UIDatePicker 保存选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53971854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com