Я пытаюсь настроить модальное представление в SwiftUI, которое можно использовать как для создания новых объектов (в данном контексте назначений), так и для редактирования существующих. Чтобы отредактировать назначение, я просто передаю это назначение представлению как наблюдаемый объект. Я подумал, что было бы просто использовать это представление для создания новых назначений, создавая новое назначение в контексте, пока я вызываю представление, например:
AssignmentEditorView(assignment: Assignment(context: self.context))
The просмотр загружается просто отлично, но очень медленный и медленный. Он бесконечно создавал новые объекты присваивания в контексте, пока я не закрыл модальное представление. Кто-нибудь знает, почему это происходит и как я могу это исправить?
Я хочу, чтобы представление создавало новое назначение в том виде, в каком оно появляется, и чтобы это новое назначение действовало как свойство @ObservedObject var assignment: Assignment
представления.
Изменить: вот код в контексте. Лист отображается поверх основного представления, когда пользователь нажимает кнопку «добавить».
Button(action: {
self.newAssignmentViewIsPresented = true
}) {
Image(systemName: "plus")
.font(.title)
}
.sheet(isPresented: $newAssignmentViewIsPresented) {
AssignmentEditorView(assignment: Assignment(context: self.context))
.environment(\.managedObjectContext, self.context)
})