Hello! I've noticed that when I am using NavigationSplitView and I minimize the app on iPadOS and then resume, if I am using a 2 column setup it loses state upon resume. This does not appear to happen on with a 3 column setup though. I'm wondering if others have run into this and if anyone has figured out a way around it. It seems like it's a bug and I should file a bug for it, but wanted to check with more people first.
Here's some example code, run it, select your number of columns, then minimize the app, count to 3 (because why not!) and open the app and you'll notice that $selection is now nil.
import SwiftUI struct Item: Identifiable, Hashable { var id: Int var name: String var description: String } struct ContentView: View { @State var selection: Item? var items: [Item] = [ .init(id: 1, name: "One", description: "Is the loneliest number"), .init(id: 2, name: "Two", description: "Two can be as bad as one"), .init(id: 3, name: "Three", description: "Three Dog Night") ] var body: some View { TabView { NavigationSplitView { List(items, selection: $selection) { item in NavigationLink(value: item) { Text(item.name) } } } content: { if let selection { Text(selection.name).font(.title) Text(selection.description) } else { EmptyView() } } detail: { VStack { Text("Detail here") } } .tabItem { Label("3 Columns", systemImage: "rectangle.split.3x1") } NavigationSplitView { List(items, selection: $selection) { item in NavigationLink(value: item) { Text(item.name) } } } detail: { if let selection { Text(selection.name).font(.title) Text(selection.description) } else { EmptyView() } } .tabItem { Label("2 Columns", systemImage: "rectangle.split.2x1") } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }