如何将DatePicker中的date()从一个视图传递到另一个视图

时间:2020-04-28 19:23:07

标签: date datepicker swiftui

大家好,谢谢。这是我第一次发贴,如果不正确,请原谅我。

在编码方面,我很新。我边走边学。

我正在使用CoreData并进行了零件设置。

 @Environment(\.managedObjectContext) var managedObjectContext
    @Environment (\.presentationMode) var presentationMode

    var dateFormatter: DateFormatter {
           let formatter = DateFormatter()
           formatter.dateStyle = .long
           return formatter
       }

    @State var title = ""
    @State var location = ""
    @State var happenedOn = Date()

我还有一个DatePicker设置。

DatePicker(selection: $happenedOn, in: ...Date(), displayedComponents: .date, label: {Text("Happened On")})

我似乎无法弄清楚如何将日期传递给另一个视图。我尝试了很多事情,但似乎无法正常工作。其余的CoreData都可以正常工作,只是日期。

                Button("Add", action: {
                    let newItem = BeenThereItem(context:
                        self.managedObjectContext)
                    newItem.title = self.title
                    newItem.location = self.location
                    newItem.id = UUID()
// Things I've tried below.

//                    let newItem = BeenThereItem(validDate: self.dateFormatter.string(from: self.happenedOn))
//                    newItem.happenedOn = self.happenedOn
//                    newItem = ("\(self.happenedOn, formatter: self.dateFormatter)")
//                    newItem = self.happenedOn(validDate: self.dateFormatter.string(from: self.happenedOn))

//Things I've tried above.
                    do {
                        try self.managedObjectContext.save()
                        print("Item saved")
                        self.presentationMode.wrappedValue.dismiss()
                    } catch {
                        print(error.localizedDescription)
                    }
                })

这是我要尝试的地方。

                 ForEach(beenThereItems) { beenThere in
                        NavigationLink(destination: BeenThereDetailsView(beenThere: beenThere)) {
                            BeenThereRowView(title: beenThere.title, location: beenThere.location)
//                            Text("\(beenThere.happenedOn, formatter: self.dateFormatter)")
                        }

0 个答案:

没有答案