-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Description
Rapidly opening and closing a page that is opened with Navigation.PushAsync(new NewPage1()); results in a blank (white) screen.
iOS:
As far as we can tell this only occurs when the app is build with Xcode 26 and running on iOS 26.
| on iOS 18.6 | on iOS 26.0 | |
|---|---|---|
| Xcode 16.4 build | cannot reproduce | cannot reproduce |
| Xcode 26.0 build | cannot reproduce | effected |
We could reproduce on both simulator and physical devices, both in our app and an app created using steps shown below.
Android:
We were not able to reproduce
- on Android physical devices using or app.
- on Android simulator using repro steps below
On simulator running our app I had one occurrence of a System.Exception: 'Nav Stack consistency error while trying to reproduce, but was not able to get the error again, so Android might also have an issue here but far harder to reproduce.
Affected MAUI versions (at least):
9.0.110
9.0.120
Screencast of issue on iOS simulator:
"Workaround":
Not really a workaround but using await Shell.Current.GoToAsync instead of the Naviation.PushAsync does not show same behaviour.
Unfortunately for us that's not an option right now as it would mean a lot of work.
Steps to Reproduce
Option one:
- Create new MAUI .NET 9 project in Visual Studio
- Update MAUI to latest (9.0.120 at time of writing)
- Add a simple
NewPage1XAML content page to root. - Add new
Buttonto top ofMainPage.xaml<Button Text="Go to New Page 1" Margin="0,20" Clicked="OnNavigateToNewPage1Clicked" HorizontalOptions="Fill" />
- Add handler to MainPage.xaml.cs
private async void OnNavigateToNewPage1Clicked(object sender, EventArgs e) { await Navigation.PushAsync(new NewPage1()); }
- Run project on an iOS 26 simulator
- When app shown rapidly do:
- click 'Go to New Page 1' button
- click 'Back button' in header
- and repeat
Option two:
- Steps 1,2 and 3 from above
- Include CommunityToolkit.MVVM
- Add a
public ICommand OpenNewPage1Command { get; }toMainPage.xaml.cs - Set handler
OpenNewPage1Command = new AsyncRelayCommand(OnOpenNewPage1CommandHandler); - Add
private async Task OnOpenNewPage1CommandHandler() { await Navigation.PushAsync(new NewPage1()); }
- Add new
Buttonto top ofMainPage.xaml<Button Text="Go to New Page 1" Margin="0,20" Command="{Binding OpenNewPage1Command, Source={Reference this}}" HorizontalOptions="Fill" />
- Steps 6 and 7 from above
Link to public reproduction project repository
No response
Version with bug
9.0.110 SR12
Is this a regression from previous behavior?
No, this is something new
Last version that worked well
No response
Affected platforms
iOS
Affected platform versions
iOS 26
Did you find any workaround?
Not really a workaround but using await Shell.Current.GoToAsync instead of the Naviation.PushAsync does not show same behaviour.
Relevant log output
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
