public async Task NavigateModalTo(IViewModelNavigationBase viewModel) { var page = _viewLocator.CreateAndBindPageFor(viewModel); await viewModel.BeforeFirstShown(); await XamarinNavigator.PushModalAsync(page); }
//Public methods public void PresentAsMainPage(IViewModelNavigationBase viewModel) { if (PresentationRoot.MainPage is NavigationPage navPage) { navPage.PopRequested -= NavPagePopRequested; } viewModel.BeforeFirstShown(); var page = _viewLocator.CreateAndBindPageFor(viewModel); PresentationRoot.MainPage = page; IEnumerable <IViewModelNavigationBase> viewModelsToDismiss = FindViewModelsToDismiss(PresentationRoot.MainPage); foreach (var toDismiss in viewModelsToDismiss) { toDismiss.AfterDismissed(); } }