Призма gobackasyn c со вложенной навигационной страницы - PullRequest
0 голосов
/ 10 марта 2020

Использование призмы форм xamarin:

Мое намерение состоит в том, чтобы пользователь вводил pw при попытке вернуться назад из «View3» и разрешал навигацию только при правильном pw.

I У меня есть следующий стек: MasterDetail / Navigation1 / View1 / View2 / Navigation2 / View3

Когда я пытаюсь перейти от view2 к navigation2, я использую модальную навигацию. Так что у меня нет 2 навигационных панелей.

Navigation2 имеет собственную кнопку «выход». При нажатии я хочу вернуться к View2, чтобы мой стек был: MasterDetail / Navigation / View1 / View2

Но когда я пытаюсь выполнить следующий код, ничего не происходит:

 _navigationService.GoBackAsync(useModalNavigation: false);
 _navigationService.GoBackAsync(useModalNavigation: true);
 _navigationService.GoBackToRootAsync();

И когда я использую _navigationService.NavigateAsync("MasterDetail/Navigation/View1/View2", useModalNavigation:true);, он работает, но затем он заново инициализирует представления, чего я хочу избежать.

Что может быть причиной этого? Я делаю что-то неправильно? спасибо за любой вклад!

1 Ответ

0 голосов
/ 10 марта 2020

Начиная с этого PR , теперь вы можете использовать его в Prism 7.1 и более ранних версиях:

_navigationService.NavigateAsync("../../");

для извлечения последних 2 страниц из стека навигации.

Также у вас не должно быть двух страниц навигации в одном стеке, я могу вызвать проблемы с вашей навигацией, я рекомендую вам превратить ваш View3 в модальную страницу и добавить обратную проверку для Android BackPress:

protected override bool OnBackButtonPressed()
{
    if (((MyView3ViewModelPage)BindingContext).ExitCommand != null)
    {
        ((MyView3ViewModelPage)BindingContext).ExitCommand.Execute();
        return true;
    }
    return base.OnBackButtonPressed();
}

И создайте свою собственную кнопку «Назад», так как это форма, и вы не будете перемещаться оттуда никуда, у вас есть полный контроль над тем, как вы представляете эту страницу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...