1 Reply
      Latest reply on Nov 17, 2019 12:32 PM by Jim Dovey
      kdion4891 Level 1 Level 1 (0 points)

        In my app I have a master `ContentView` which uses a `FetchRequest` in order to grab entities:


            struct ContentView: View {
                @Environment(\.managedObjectContext) var managedObjectContext
                    entity: Note.entity(),
                    sortDescriptors: [
                        NSSortDescriptor(key: "title", ascending: true, selector: #selector(NSString.caseInsensitiveCompare))
                ) var notes: FetchedResults


        Then I spit them out in a loop like so:



            NavigationView {
                List {
                    ForEach(notes, id: \.self) {note in
                        NavigationLink(destination: NoteDetailView(note: note), label: {


        In my `NoteDetailView`, I use the `note` to display its details:


            struct NoteDetailView: View {
                var note: Note


        I also have another view which handles editing the `Note`:


            struct EditNoteView: View {
                var note: Note
                @Environment(\.managedObjectContext) var managedObjectContext
                @State var noteTitle: String = ""
                @State var noteType: String = "Note"
                @State var noteColor: String = "None"


        This `EditNoteView` will make changes to a `Note` then save it:


            func saveNote() {
                noteTitle = noteTitle.trimmingCharacters(in: .whitespacesAndNewlines)
                if (noteTitle.count > 0) {
                    note.title = noteTitle
                    note.type = noteType
                    note.color = noteColor
                    note.dateUpdated = Date()
                    do {
                        try managedObjectContext.save()
                    } catch {


        The user can open this `EditDetailView` from either the master view (`ContentView`) or the detail view (`NoteDetailView`).


        Now I've read up on this and it appears I have the opposite problem of some other people. Most people seem to have a problem updating the master from the detail view. When I call `EditNoteView` from the `NoteDetailView` and make changes it updates both the `ContentView` and then `NoteDetailView` with the changes perfectly.


        However, when I call `EditNoteView` from the `ContentView` and make changes it only updates the `ContentView` and not the `NoteDetailView`.


        I should mention that this is a catalyst app and I only notice this problem on devices that show the master view as a sidebar (Mac & iPad). I'm guessing it is because when I am making edits from the master view, the detail view is not "active" and therefore it doesn't think it needs to update? I'm not sure how to fix this.