Я пробовал это как с использованием 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.