iOS 18 NavigationSplitView in NavigationStack not loading properly

With iOS 18.0, this snippet of code that has a NavigationSplitView inside a NavigationStack will not display the sidebar until the navigation transition is completed.

NavigationStack {
    NavigationLink("Link") {
        NavigationSplitView {
            Text("Example")
        } detail: {
            Text("Does not appear")
        }
    }
}

Directly after pressing the link, a toolbar briefly appears. Once the transition is completed, the split view's sidebar appears and the toolbar disappears. The detail view does not visually appear at all.

The same problem occurs when using .navigationDestination(…), which I am in our production code.

I've tested this in Xcode 16.0 Previews for iOS 18.0, iPhone SE Simulator iOS 18.0, iPadOS 18.0 when horizontal size class is compact, and on my personal iPhone 13 mini iOS 18.0 I experienced this problem on our production app.

Is there any workaround to not have this delay? Our app is heavily built around this nested approach, and has been working perfectly in previous iOS versions.

Filed bug report: FB15300701

@vladimirs NavigationSplitView is a top level navigation container and it's meant to be used without being wrapped in another navigation container. You can embed a NavigationStack in a column of a NavigationSplitView not the other way around since a navigation split view collapses into a single stack on iPhone. If you'd like to learn more about navigation structures, you could review The SwiftUI cookbook for navigation WWDC session

Could you elaborate on why you have the NavigationSplitView inside stack and what you're trying to achieve ?

@DTS Engineer Of course. We chose to have a nested SplitViewController inside a StackController because it allowed us to have an always visible bottom toolbar, even in smaller viewports.

These are screenshots from our app (on iPadOS 17.6.1) that is used primarily by bus drivers. This approach has worked great in UX testing, and we would like to be able to continue using format.

iOS 18 NavigationSplitView in NavigationStack not loading properly
 
 
Q