NavigationStack path is being reset in NavigationSplitView details columns

I'm building a SwiftUI app for iPad using a NavigationSplitView as the navigation root. Below is a simplified version of the app's navigation. There are a Home Page and a Settings Page, each with its own NavigationStack. The page that appears in the detail column depends on the sidebar's selection value. The issue I'm facing is that when I navigate deeply into the Home Page's NavigationStack (e.g., to a Home Page Child view), switch to the Settings Page, and then switch back to the Home Page, the Home Page's navigation path has been reset to [] and the previous state is lost. The same issue occurs if I navigate deeply into the Settings Page (e.g., to a Settings Page Child view), switch to the Home Page, and then return to the Settings Page: the navigation state for the Settings Page is lost, and it reverts to the root of the NavigationStack. Why is this happening and how can I fix it so that switching pages in the sidebar doesn't reset the NavigationStack of each individual page in the detail column? Thank you.


struct ContentView: View {
    @State var selection: String?
    @State var firstPath = [String]()
    @State var secondPath = [String]()
    
    var body: some View {
        NavigationSplitView {
            List(selection: $selection) {
                Text("Home")
                    .tag("home")
                
                Text("Settings")
                    .tag("settings")
            }
        } detail: {
            if selection == "home" {
                HomePage(path: $firstPath)
            } else {
                SettingsPage(path: $secondPath)
            }
        }
    }
}

struct HomePage: View {
    @Binding var path: [String]
    
    var body: some View {
        NavigationStack(path: $path) {
            NavigationLink("Home Page", value: "Home")
                .navigationDestination(for: String.self) { _ in
                    Text("Home Page Child")
                }
        }
    }
}

struct SettingsPage: View {
    @Binding var path: [String]
    
    var body: some View {
        NavigationStack(path: $path) {
            NavigationLink("Settings Page", value: "Settings")
                .navigationDestination(for: String.self) { _ in
                    Text("Settings Page Child")
                }
        }
    }
}

#Preview {
    ContentView()
}
NavigationStack path is being reset in NavigationSplitView details columns
 
 
Q