Всем привет и заранее спасибо. Это моя первая публикация, так что извините, если она не верна.
Я очень новичок в кодировании. Учусь как я go.
Я использую 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)
}
})
Здесь я пытаюсь получить ее на go.
ForEach(beenThereItems) { beenThere in
NavigationLink(destination: BeenThereDetailsView(beenThere: beenThere)) {
BeenThereRowView(title: beenThere.title, location: beenThere.location)
// Text("\(beenThere.happenedOn, formatter: self.dateFormatter)")
}