大家好,谢谢。这是我第一次发贴,如果不正确,请原谅我。
在编码方面,我很新。我边走边学。
我正在使用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)")
}