Beispiel #1
0
        protected virtual async Task <bool> PopModalToViewModel(INavigation navigation, MvxPopPresentationHint popHint)
        {
            // Need to check the modal stack first
            while (navigation.ModalStack.Any())
            {
                var modalPage = navigation.ModalStack.Last();
                if (modalPage.IsViewModelTypeOf(popHint.ViewModelToPopTo))
                {
                    return(true);
                }

                var modalNavPage = GetPageOfType <NavigationPage>(modalPage);
                if (modalNavPage != null)
                {
                    var matched = await PopToViewModel(modalNavPage.Navigation, popHint.ViewModelToPopTo, popHint.Animated);

                    if (matched)
                    {
                        return(true);
                    }
                }

                await navigation.PopModalAsync();
            }

            return(false);
        }
Beispiel #2
0
        protected void PopToPage <TViewModel>() where TViewModel : MvxViewModel
        {
            var hint = new MvxPopPresentationHint(typeof(TViewModel));

            this.NavigationService.ChangePresentation(hint);
        }