iOS 26 floating tab bar in .NET MAUI: what broke and how it was fixed
With iOS 26's Liquid Glass design, the Shell tab bar floats over content, which broke a .NET MAUI iPad layout, and an Xcode 27 build crashed at launch. The author walks through the UIScene migration, SafeAreaEdges-based page insets, and a map inside a WebView. It is a practical guide for MAUI developers targeting iOS 26 and 27.
Key points
- An app built with Xcode 27 crashes at launch on iOS 27 unless it adopts the UIScene lifecycle
- In .NET MAUI, SafeAreaEdges is set per side, so content can extend to the bottom edge while the rest keeps its insets
- Vertical lists on tab pages get a footer of about 100 points so the last row can scroll above the floating bar
- Android and Windows keep a zero footer height, so the change only affects the iOS build
- For a map in a WebView, viewport-fit=cover plus a hidden probe element exposes the safe-area bottom inset to JavaScript
- Updating Microsoft.Maui.Controls to 10.0.110 brought a MeasureFirstItem side effect on iOS
Apple's Liquid Glass design in iOS 26 turned the Shell tab bar from a strip pinned to the bottom edge into a translucent floating panel over the content. The author reports that this broke the layout of a .NET MAUI 10 iPad app, and that a build made with Xcode 27 crashed right at launch. The post describes how each problem was handled in turn.
The first fix was moving the app to the UIScene lifecycle, which Apple now requires for builds with the current SDK. Next, SafeAreaEdges was used to let page content run under the panel, with a bottom footer added to vertical lists so the last row can scroll above it. Finally, the map in a WebView needed viewport-fit adjustments and some JavaScript measurements. The original has the full code and the caveats.
Real-world use
- An enterprise MAUI app that uses a Shell tab bar and is moving to iPad
- A field app with a map inside a WebView, such as a route screen
- A team preparing a new iOS build with Xcode 27 that crashes at launch
Why it matters
MAUI apps targeting iOS 26 and 27 now need the UIScene lifecycle in practice, and the tab bar overlap can be handled through page layout rather than much platform code.