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);
                }
            });
        }
Esempio n. 2
0
        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();
        }