diff --git a/src/Prism.Maui/Navigation/PageNavigationService.cs b/src/Prism.Maui/Navigation/PageNavigationService.cs index 01bd31a..131bf74 100644 --- a/src/Prism.Maui/Navigation/PageNavigationService.cs +++ b/src/Prism.Maui/Navigation/PageNavigationService.cs @@ -331,9 +331,14 @@ protected virtual async Task ProcessNavigation(Page currentPage, Queue s var nextSegment = segments.Dequeue(); var pageParameters = UriParsingHelper.GetSegmentParameters(nextSegment); - //var useModalNavigation = pageParameters.ContainsKey(KnownNavigationParameters.UseModalNavigation) ? pageParameters.GetValue(KnownNavigationParameters.UseModalNavigation) : false; - //var animated = pageParameters.ContainsKey(KnownNavigationParameters.Animated) ? pageParameters.GetValue(KnownNavigationParameters.Animated) : true; + useModalNavigation = pageParameters.ContainsKey(KnownNavigationParameters.UseModalNavigation) ? pageParameters.GetValue(KnownNavigationParameters.UseModalNavigation) : false; + if (!useModalNavigation.Value && !MvvmHelpers.HasNavigationPageParent(currentPage)) + useModalNavigation = true; + + animated = parameters.ContainsKey(KnownNavigationParameters.Animated) ? + parameters.GetValue(KnownNavigationParameters.Animated) : + pageParameters.ContainsKey(KnownNavigationParameters.Animated) ? pageParameters.GetValue(KnownNavigationParameters.Animated) : true; if (nextSegment == RemovePageSegment) {