Grand-Child disappear when load content

In my app is the first screen is a list with projects. On press a list-item navigate to detail-View of the project. On the project detail view is a option to load more content (from the project) and show it in an other detail view. The Content of the second detail view, will loading the content when it appears. After loading the content, the list will show for a second and than the view disappears back to project detail view. Here is some code with the same issue. How can I solve that?

a video can find here: https://drive.infomaniak.com/app/share/374081/ba9ba6ea-baa6-461d-af61-193b17ffa066

import Foundation
import SwiftUI

//Item struct, just for testing
struct Item: Equatable, Identifiable {
    var id = UUID()
    var text: String
    var isDone: Bool
}

//simulate the datasource for my app
class DataSource: ObservableObject {

    @Published var content: [Item] = []
    @Published var detailContent: [Item] = []

    init() {
        self.content = [Item(text: "Hello", isDone: false), Item(text: "Hello", isDone: false), Item(text: "Hello", isDone: false)]
    }

    func prepareDetailContent() {
        self.detailContent = [Item(text: "Hello", isDone: false), Item(text: "Hello", isDone: false), Item(text: "Hello", isDone: false)]
    }
}

//overview of my projects
struct ContentView: View {

    @EnvironmentObject var dataSource: DataSource

    var body: some View {
        NavigationView {
            List {
                ForEach(dataSource.content) { item in
                    NavigationLink(destination: DetailView(currentItem: binding(for: item))) {
                        Text(item.text)
                    }
                }
            }
        }
    }

    func binding(for item: Item) -> Binding<Item> {
        guard let index = dataSource.content.firstIndex(where: {$0.id == item.id}) else {
            fatalError("ProjektBinding Hat nicht geklappt")
        }
        return $dataSource.content[index]
    }
}

//Detailview to the project
struct DetailView: View {
    
    @Binding var currentItem: Item
   
    @EnvironmentObject var dataSource: DataSource

    var body: some View {
        VStack {
            TextField("Item", text: $currentItem.text)
            Spacer()
                .frame(height: 50)
            Toggle("isDone", isOn: $currentItem.isDone)
            Button("Add Item") {
                dataSource.content.append(Item(text: "all New", isDone: false))
                }
            NavigationLink(destination: DetailContentView()) {
                Text("go to DetailContent")
            }
            }
        .padding()
    }
}

//additional Content to the selected project
struct DetailContentView: View {
   
    @EnvironmentObject var dataSource: DataSource

    var body: some View {
        List {
            ForEach(dataSource.detailContent) { item in
                Text(item.text)
            }
        }
        .onAppear {
            dataSource.prepareDetailContent()
        }
    }
}

Providing the DataSource starts at @main:

@main
struct BindingTestApp: App {

    @ObservedObject var ds: DataSource

    init() {
       self.ds = DataSource()
    }
    var body: some Scene {
        WindowGroup {
            ContentView()
                .environmentObject(self.ds)
        }
    }
}

Thank You for your help!

Grand-Child disappear when load content
 
 
Q