Post

Replies

Boosts

Views

Activity

Reply to Is NavigationSplitView on macOS 27 broken?
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:
1w
Reply to Is NavigationSplitView on macOS 27 broken?
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:
Replies
Boosts
Views
Activity
1w