有没有办法从CoreData设置起始DatePicker值?

时间:2019-08-21 15:28:33

标签: datepicker swiftui

我有一个简单的应用程序,该应用程序的日期组件已保存到核心数据中。我已经设置了一个允许编辑的视图,但是当加载此编辑视图时,我的日期选择器将始终显示当前日期,而不是创建项目时先前输入的日期。

我尝试使用onAppear()设置日期值,但这确实可行。我加载了编辑视图,并且DatePicker显示了我想要的存储日期。但是,如果我希望对选择器进行更改,则Xcode会发出警报,指出“在视图更新期间修改状态,这将导致未定义的行为”。我不确定如何设置该值,而不是状态的原因和问题。

var thisCook: CookData
@State var updatedDate = Date()


DatePicker(selection: $updatedDate) {
                        Text("Cook Date:")
                    }.onAppear() {
                        self.updatedDate = self.thisCook.date
                        //Alert is shown for the line above
                    }

我不确定确切的代码在这里会有所帮助,但这就是我的问题所在。如果我需要展示更多,请告诉我。就像我之前说过的那样,它确实使用先前保存的日期加载了编辑视图,但是如果我想输入该日期,则会收到修改状态警报。

1 个答案:

答案 0 :(得分:0)

您正在用@State var updatedDate = Date()分配当前日期,这就是为什么要显示该日期。在初始化中,您还可以将theCook.date分配给_updatedDate

为避免使用Modifying state during view update,将状态移至ObservableObject可能会有所帮助。