Exemplo n.º 1
0
        /// <summary>
        /// Called when the Activity has detected the user's press of the back key
        /// </summary>
        public static async void OnBackPressed()
        {
            await semaphore.WaitAsync();

            try
            {
                var container       = ContainerLocator.Container;
                var popupNavigation = container.Resolve <IPopupNavigation>();
                var appProvider     = container.Resolve <IApplicationProvider>();

                var topPage    = PopupUtilities.TopPage(popupNavigation, appProvider);
                var navService = container.Resolve <INavigationService>(PrismApplicationBase.NavigationServiceName);
                if (navService is IPageAware pa)
                {
                    pa.Page = topPage;
                }

                var parameters = new NavigationParameters();
                parameters.AddInternalParameter("_NavigationSource", "BackButton");
                await navService.GoBackAsync(parameters);
            }
            finally
            {
                semaphore.Release();
            }
        }
Exemplo n.º 2
0
        public static void HandleSystemGoBack(Page previousPage, Page currentPage)
        {
            var parameters = new NavigationParameters();

            parameters.AddInternalParameter(KnownInternalParameters.NavigationMode, NavigationMode.Back);
            OnNavigatedFrom(previousPage, parameters);
            OnNavigatedTo(GetOnNavigatedToTargetFromChild(currentPage), parameters);
            DestroyPage(previousPage);
        }
 public static NavigationParameters AddNavigationMode(this NavigationParameters parameters, NavigationMode mode)
 {
     parameters.AddInternalParameter(NavigationModeKey, mode);
     return(parameters);
 }