maui
maui copied to clipboard
Flyout Button Disappears
Description
The flyout button disappears on iOS if you navigate backward to a new root page.
Basically, this will cause the flyout button to disappear:
_navigationPage.Navigation.InsertPageBefore(new ContentPage(), _currentRootPage);
await _navigationPage.Navigation.PopAsync();
Steps to Reproduce
- Checkout the public reproduction project repository below
- Open the MauiBugs.sln and run the FlyoutBug.csproj on iOS
- Click the "Demo Bug" button
- Observe that the flyout button is missing
Link to public reproduction project repository
https://github.com/AceCoderLaura/MauiBugs
Version with bug
8.0.10 SR3
Is this a regression from previous behavior?
Yes, this used to work in Xamarin.Forms
Last version that worked well
Unknown/Other
Affected platforms
iOS
Affected platform versions
iOS 15.8.2
Did you find any workaround?
Found one here: https://github.com/dotnet/maui/issues/21828#issuecomment-2055470982
Relevant log output
No response
Found a workaround!
If you replace the flyout's icon with a new ImageSource after navigating back, it will re-render the button. I'm using a FileImageSource for my flyout's icon, so I can just reuse the File property and implicit conversion will create a new FileImageSource with the same icon.
Flyout.IconImageSource = ((FileImageSource)Flyout.IconImageSource).File;
Verified on 8.0.20. Repro on iOS 17.2 and MacCatalyst, not repro on Windows 11 and Android 14.0-API34 with below Project: FlyoutBug.zip