Пример #1
0
        private void OnBackButtonPressed(Page page, CancelEventArgs args)
        {
            if (CurrentContent != page)
                return;
            var eventArgs = new NavigatingCancelEventArgs(null, NavigationMode.Back, null);
            RaiseNavigating(eventArgs);
            args.Cancel = eventArgs.Cancel;

            if (!args.Cancel && _rootPage.Navigation.NavigationStack.Count == 1 &&
                _rootPage.Navigation.NavigationStack[0] == page)
                RaiseNavigated(null, null, NavigationMode.Back);
        }
        private void OnBackButtonPressed(Page page, CancelEventArgs args)
        {
            if (CurrentContent != page)
                return;

            var isCancelable = CanGoBack || (_isRootFrame && XamarinFormsExtensions.SendBackButtonPressed != null);
            if (isCancelable)
            {
                var eventArgs = new NavigatingCancelEventArgs(null, NavigationMode.Back, null, true, true);
                RaiseNavigating(eventArgs);
                args.Cancel = eventArgs.Cancel;
            }
            if (isCancelable && args.Cancel)
                return;

            if (!CanGoBack)
                RaiseNavigated(null, null, NavigationMode.Back);
        }
Пример #3
0
 private bool RaiseNavigating(NavigatingCancelEventArgs args)
 {
     EventHandler<INavigationService, NavigatingCancelEventArgsBase> handler = Navigating;
     if (handler == null)
         return true;
     handler(this, args);
     return !args.Cancel;
 }
        private void OnBackButtonPressed(Page page, CancelEventArgs args)
        {
            if (CurrentContent != page)
                return;
            bool isCancelable = _rootPage.Navigation.NavigationStack.Count > 1 || XamarinFormsExtensions.SendBackButtonPressed != null;
            var eventArgs = new NavigatingCancelEventArgs(null, NavigationMode.Back, null, isCancelable, true);
            RaiseNavigating(eventArgs);
            if (!isCancelable)
                eventArgs.Cancel = false;
            args.Cancel = eventArgs.Cancel;

            if (!args.Cancel && _rootPage.Navigation.NavigationStack.Count == 1 &&
                _rootPage.Navigation.NavigationStack[0] == page)
                RaiseNavigated(null, null, NavigationMode.Back);
        }