Нажатие стрелки назад для перехода на одну страницу назад не выполняется в формах Xamarin - PullRequest
0 голосов
/ 15 марта 2020

Я пробовал это как с использованием Prism, так и со встроенной навигацией Xamarin Forms.

У меня есть PageA и PageB (оба используют MVVM). Во время запуска моего приложения (App.xaml.cs) я перехожу к PageA. Во время инициализации PageA я сталкиваюсь с ошибкой и хочу отправить приложение на PageB, поэтому в рамках PageA я выполняю навигацию к PageB.

Как только я достигаю PageB, у меня отображается стрелка назад, чтобы перейти назад, но при нажатии на нее никогда не отправляет меня обратно на предыдущую страницу (PageA). Как мне этого добиться?

Заранее спасибо.

Редактировать: Добавлен код ниже (на основе призмы)

App.Xaml.cs:

public App(IPlatformInitializer initializer = null):base(initializer)
    {
        NavigationService.NavigateAsync("NavigationPage/PageA");
    }

PageAVM:

public PageAVM(INavigationService navigationService)
    {
        _navigationService = navigationService;
    }

public async void OnAppearing()
    {
        // Perform some actions and if there is an error navigate to PageB
        await _navigationService.NavigateAsync("PageB");            
    }

Ожидается, что я перейду к PageB, с доступной кнопкой «Назад» и смогу нажать ее, чтобы вернуться на PageA.

На самом деле, нажатие кнопки «Назад» или аппаратной кнопки «Назад» не возвращает меня к PageA.

Если переместить навигацию внутрь конструктора PageA, я смогу вернуться назад, но все элементы панели инструментов на PageA останутся на PageB.

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