I have a simple SwiftUI, CoreData application. The architecture is the basic list with
a second view for viewing the detail or editing the detail. The basic structure seems
to work with one important exception. When editing a record, the first edit after
app start is properly visible after returning to the ContentView list. The second and
further edits do not appear on the list when returning to the ContentView. The database
changes are correctly saved. Restarting the app will display the correct data. I have
also created a TabView. If I disable the return-to-main-list-after-edit code and use
just the TabView to switch, the changes are always presented.

Here's the code (I have removed most of the repetitive data fields).

In SceneDelegate:

```
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let tabby = TabBar().environment(\.managedObjectContext, managedObjectContext)
window.rootViewController = UIHostingController(rootView: tabby)

```

In ContentView:

```
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(fetchRequest: ToDoItem.getAllToDoItems()) var toDoItems: FetchedResults<ToDoItem>

@State private var newToDoItem = ""
@State private var gonnaShow = true
@State private var show = false

var body: some View {
    NavigationView {
        List {
             Section(header: Text("Records")) {
                ForEach(self.toDoItems) { toDoItem in
                    NavigationLink(destination: EditToDo(toDoItem: toDoItem)) {
                        ToDoItemView(
                            idString: toDoItem.myID.uuidString,
                            title: toDoItem.title!,
                            firstName: toDoItem.firstName!,
                            lastName: toDoItem.lastName!,
                            createdAt: self.localTimeString(date: toDoItem.createdAt!)
                                    )
                    }
                }//for each
                .onDelete { indexSet in
                    let deleteItem = self.toDoItems[indexSet.first!]
                    self.managedObjectContext.delete(deleteItem)

                    do {
                        try self.managedObjectContext.save()
                    } catch {
                        print(error)
                    }
                }
                .onMove(perform: move)
            }
        }
        .navigationBarTitle("Customers")
        .navigationBarItems(trailing: EditButton())
    }
}

```

Separate file EditToDo:

```
@Environment(\.managedObjectContext) var managedObjectContext
@Environment(\.presentationMode) var presentationMode

var toDoItem: ToDoItem

@State private var updatedTitle: String = "No Title"
@State private var updatedFirstName: String = "No First Name"
//more data fields

@State private var updatedDate: Date = Date()
@State private var updatedDateString: String = "July 2019"

var body: some View {
    ScrollView {
    VStack {
        Image("JohnForPosting")
            .resizable()
            .aspectRatio(contentMode: .fill)
            .frame(width: 80, height: 80)
            .clipShape(Circle())

        VStack(alignment: .leading) {
            Text("ToDo Title:")
                .padding(.leading, 5)
                .font(.headline)
            TextField("Enter a Title", text: $updatedTitle)
                .onAppear {
                    self.updatedTitle = self.toDoItem.title ?? ""
            }
            .textFieldStyle(RoundedBorderTextFieldStyle())
        }
        .padding(10)

        VStack(alignment: .leading) {
            Text("First Name:")
                .padding(.leading, 5)
                .font(.headline)
            TextField("Enter a First Name", text: $updatedFirstName)
                .onAppear {
                    self.updatedFirstName = self.toDoItem.firstName ?? ""
            }
            .textFieldStyle(RoundedBorderTextFieldStyle())
        }
        .padding(10)
        //more data fields

        VStack {
            Button(action: ({
                self.toDoItem.title = self.updatedTitle
                self.toDoItem.firstName = self.updatedFirstName
                //more data fields

                do {
                    try self.managedObjectContext.save()
                } catch {
                    print(error)
                }

                self.updatedTitle = ""
                self.updatedFirstName = ""
                //more data fields

                self.presentationMode.wrappedValue.dismiss()

            })) {
                Text("Save")
            }
            .padding()
        }
        .padding(10)
        Spacer()
    }
}
} 

```

Separate file ToDoItemView:

```
var idString: String = ""
var title: String = ""
var firstName: String = ""
//more data fields

var body: some View {
    HStack {
        VStack(alignment: .leading) {
            Text("\(firstName) \(lastName)")
                .font(.headline)
            Text("\(createdAt) and \(idString)")
                .font(.caption)
        }
    }
}

```

Xcode 11 - I guess this is the real release (post GM seed 2), Catalina Beta 19A558d,
iOS13.1
I thought the @Environment changes would always cause the body of ContentView to be 
redrawn. And it is the weird behavior of first edit working, others not. Any guidance
would be appreciated.