gpt4 book ai didi

swiftui - 如何以编程方式更改 swiftUI DatePicker 的选定值

转载 作者:行者123 更新时间:2023-12-05 04:39:26 27 4
gpt4 key购买 nike

我有一个由三个 swiftUI 选择器(两个 DatePickers 和一个标准字符串选择器)组成的 swiftUI 表单。当字符串选择器的值发生变化时,我试图更改第二个 DatePicker 的选定值。

我在字符串选择器上使用 .onChange 来更新基础值,这工作正常(我添加了一个文本行来显示到期日期值,以便可以验证更改)。但是,我希望到期日期选择器在绑定(bind)值更改时更新它显示的日期。

*以下屏幕截图中的值是初始设置值。

enter image description here

struct FormWithPicker: View {
@StateObject var formValues = FormValues()

var body: some View {
NavigationView {
Form{
// invoice date
DatePicker("Invoice Date:", selection: $formValues.invoiceDate, displayedComponents: [.date])

// terms
Picker("Terms:", selection: $formValues.invoiceTerms) {
ForEach(formValues.terms, id: \.self) { term in
Text(term)
}
}
.onChange(of: formValues.invoiceTerms, perform: { _ in
formValues.incrementDueDate()
})

// due date
DatePicker("Due Date:", selection: $formValues.dueDate, displayedComponents: [.date])

// text
Text(formValues.dueDate.description)

}
}
}
}

最佳答案

我们需要使 DatePicker 依赖于外部更改的 dueDate 并重建它。 .id 修饰符对此很有用,比如

DatePicker("Due Date:", selection: $formValues.dueDate, displayedComponents: [.date])
.id(formValues.dueDate) // << here !!

使用 Xcode 13.2/iOS 15.2 测试

关于swiftui - 如何以编程方式更改 swiftUI DatePicker 的选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70451891/

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