Creating a new Core data Entry/Object (addItem) while in modal stops the dismissal of the view, presentationMode.wrappedValue.dismiss() no longer works. The sample below uses the template provided in Beta 6 with core data, with the additional of a full screen cover to save some data. After the new Item is created, the modal will no longer dismiss. Any way around this?
Code Block import SwiftUI import CoreData struct ContentView: View { @Environment(\.managedObjectContext) private var viewContext @FetchRequest(sortDescriptors: [NSSortDescriptor(keyPath: \Item.timestamp, ascending: true)],animation: .default) private var items: FetchedResults<Item> @State private var isPresented = false var body: some View { NavigationView { List { ForEach(items) { item in Text("\(item.timestamp!, formatter: itemFormatter)") } .onDelete(perform: deleteItems) } .toolbar { Button(action: {isPresented.toggle()}) {Image(systemName: "plus")} .fullScreenCover(isPresented: $isPresented, content: { PopUpView() }) } } } private func deleteItems(offsets: IndexSet) { withAnimation { offsets.map { items[$0] }.forEach(viewContext.delete) do { try viewContext.save() } catch { let nsError = error as NSError fatalError("Unresolved error \(nsError), \(nsError.userInfo)") } } } } private let itemFormatter: DateFormatter = { let formatter = DateFormatter() formatter.dateStyle = .short formatter.timeStyle = .medium return formatter }() struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) } } struct PopUpView: View { @Environment(\.managedObjectContext) private var viewContext @Environment(\.presentationMode) private var presentationMode var body: some View { Button(action: addItem) {Text ("Add Item")} Button(action: {presentationMode.wrappedValue.dismiss()} ) {Text ("Dismiss View")} } private func addItem() { let newItem = Item(context: viewContext) newItem.timestamp = Date() do { try viewContext.save() self.presentationMode.wrappedValue.dismiss() } catch { let nsError = error as NSError fatalError("Unresolved error \(nsError), \(nsError.userInfo)") } } }