Seeing a possibly related problem on iOS 27.1 (iPhone Duo simulator, Xcode 27.1 27A9275): a NavigationSplitView with an .inspector attached to the detail hangs the main thread when the Duo is rotated from landscape to portrait in open-screen mode.
It only happens when the column visibility is pinned:
NavigationSplitView(columnVisibility: .constant(.all)) {
Sidebar()
} detail: {
Detail()
.inspector(isPresented: $isPresented) { Inspector() } // even unpresented
}
The main thread sits at 100% CPU inside -[_UISplitViewControllerAdaptiveImpl _solveLayout] (reached from _sceneSettingsSafeAreaCornerInsetsDidChange → viewSafeAreaInsetsDidChange → _invalidateLayout) and never recovers. The app’s own code isn’t on the stack.
With the inspector attached and rotated by hand:
.constant(.all), sidebar toggle removed: hangs
.constant(.all), toggle kept: hangs
@State starting at .doubleColumn, toggle removed: no hang
So the pinned binding seems to matter, and keeping visibility in @State works around it. I haven’t tested the other platforms, and I can’t say whether this shares a cause with the macOS layout loop reported here.
Filed as FB25290468, with a minimal project and a stack sample attached. Has anyone else seen this on a Duo or iPad?
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: