Когда пользователь хочет создать новую запись, я хотел бы: a) go для нового представления, b) создать запись во время .onAppear
, а затем c) обновить представление с помощью вновь созданная запись.
Первая часть проста. У меня есть NavigationLink
, который переходит в новое представление вместе с именем пользователя в качестве свойства. И я могу создать новую запись в течение .onAppear
. Но это последняя часть, где все усложняется. вдохновляющие идеи. Проблема всегда сводится к следующему: Как мне обновить FetchRequest после создания новой записи? Примечание: мне нужна ссылка на вновь созданную запись, чтобы пользователь мог добавлять элементы в запись.
Вот пока код ...
struct RecordView: View {
@Environment(\.managedObjectContext) var moc
let appDelegte = UIApplication.shared.delegate as! AppDelegate
var fetchedRecords: FetchRequest<Record>
var currentUser: User
init(recordNumber: String) {
fetchedRecords = FetchRequest<Record>(entity: Record.entity(), sortDescriptors: [], predicate: NSPredicate(format: "user.recordNumber = %@", recordNumberNumber))
}
var body: some View {
Text(fetchedRecords.wrappedValue.first.recordNumber)
}
.onAppear {
self.CreateNewRecord()
}
func CreateNewRecord() {
let newRecord = Record(context: self.moc)
newRecord.id = UUID()
let recordNumber = "AABBCCDDEE"
user.addToRecords(newRecord)
appDelegate.saveContext()
//This is when the fetched request should fetch the new record and the Text view should be updated.
}
}