Exemplo n.º 1
0
        /// <summary>
        /// Navigates the back.
        /// </summary>
        internal Task NavigateBack()
        {
            var task = new TaskCompletionSource <bool>();

            Dispatcher.InvokeAsync(async() =>
            {
                if (PageFrame.NavigationService.CanGoBack)
                {
                    var current = CurrentPage;

                    await PageFrame.GoBackWithTransition();

                    EventHelper.FireEventIfNotNull(Navigated, this, new NavigationEventArgs
                    {
                        NewPage = CurrentPage,
                        OldPage = current
                    }, _logger);
                }
                else
                {
                    //Check for home page and call system options modal
                    var homePage = CurrentPage as IHomePage;

                    if (homePage != null)
                    {
                        NavigationManager.NavigateToBackModal();
                    }
                }

                task.TrySetResult(true);
            });

            return(task.Task);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Navigates the back.
        /// </summary>
        internal Task NavigateBack()
        {
            var task = new TaskCompletionSource <bool>();

            Dispatcher.InvokeAsync(async() =>
            {
                if (PageFrame.NavigationService.CanGoBack)
                {
                    var current = CurrentPage;

                    await PageFrame.GoBackWithTransition();

                    EventHelper.FireEventIfNotNull(Navigated, this, new NavigationEventArgs
                    {
                        NewPage = CurrentPage,
                        OldPage = current
                    }, _logger);
                }
                task.TrySetResult(true);
            });

            return(task.Task);
        }