public async Task PopToRootAsync() { await Device.InvokeOnMainThreadAsync(async() => { try { Debug.WriteLine($"PopToRootAsync()"); while (_navigation.Navigation.ModalStack.Any()) { await _navigation.Navigation.PopModalAsync(false); } await _navigation.Navigation.PopToRootAsync(false); CurrentPage = _navigation.CurrentPage; AppStateController.ClearNavigationMetaStack(); } catch (Exception ex) { Debug.WriteLine(ex); } }); }
protected override async void OnStart() { var result = await DependencyService.Get <IPermissionService>() .CheckPermissions(Permission.Storage); if (!result.Any(x => x.Value == PermissionStatus.Granted)) { return; } //await ClearTablesAsync(); await CreateTablesAsync(); var navigationService = SimpleIoc.Default.GetInstance <INavigationService>(); var navList = AppStateController.RestoreState(); AppStateController.ClearNavigationMetaStack(); foreach (var nav in navList) { switch (nav.CurrentPage) { case "MainPage": await navigationService.ReplaceRoot(Locator.Home); break; default: break; } } base.OnStart(); }