From 46c5eaa2ce7178be0a227bf922af1ad3490bbac4 Mon Sep 17 00:00:00 2001 From: dartasen Date: Wed, 18 Feb 2026 10:55:41 +0100 Subject: [PATCH] Add documentation for OnNavigatingFrom extension --- docs/maui/views/Popup.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/maui/views/Popup.md b/docs/maui/views/Popup.md index fc6e386f..ddaaa620 100644 --- a/docs/maui/views/Popup.md +++ b/docs/maui/views/Popup.md @@ -181,13 +181,13 @@ It is important to note that a `Popup` will be displayed inside `ContentPage` wh | Action | Lifecycle event | | ------ | --------------- | -| Show popup | Current `Page` will receive `OnDisappearing` and `OnNavigatingFrom` | +| Show popup | Current `Page` will receive `OnNavigatingFrom`, `OnDisappearing` and `OnNavigatedFrom` | | Close popup | Previous `Page` will receive `OnAppearing` and `OnNavigatedTo` | To determine if `OnNavigatedTo(NavigatedToEventArgs)` was called by dismissing `Popup`, you can use the `WasPreviousPageAToolkitPopup()` extension method: ```cs -protected override async void OnNavigatedTo(NavigatedToEventArgs args) +protected override void OnNavigatedTo(NavigatedToEventArgs args) { base.OnNavigatedTo(args); @@ -198,10 +198,22 @@ protected override async void OnNavigatedTo(NavigatedToEventArgs args) } ``` -To determine if `OnNavigatedFrom(NavigatedFromEventArgs)` was called by opening a `Popup`, you can use the `IsDestinationPageACommunityToolkitPopupPage()` extension method: +To determine whether `OnNavigatingFrom(NavigatingFromEventArgs)` or `OnNavigatedFrom(NavigatedFromEventArgs)` was called by opening a `Popup`, you can use the `IsDestinationPageACommunityToolkitPopupPage()` extension method: -```cs -protected override async void OnNavigatedFrom(NavigatedFromEventArgs args) +> [!WARNING] +> As per [https://github.com/dotnet/maui/issues/34073](https://github.com/dotnet/maui/issues/34073), OnNavigatingFrom is currently not working properly, but will be fixed in a near future + +```csharp +protected override void OnNavigatingFrom(NavigatingFromEventArgs args) +{ + base.OnNavigatingFrom(args); + if (args.IsDestinationPageACommunityToolkitPopupPage()) + { + // If true, `OnNavigatingFrom` was called by starting a Popup + } +} + +protected override void OnNavigatedFrom(NavigatedFromEventArgs args) { base.OnNavigatedFrom(args); if (args.IsDestinationPageACommunityToolkitPopupPage())