我已经尝试过使用Prism以及Xamarin Forms内置的导航。
我有PageA和PageB(都使用MVVM)。在我的应用程序启动期间(App.xaml.cs),我导航到PageA。在PageA的初始化过程中,我遇到了一个错误,我想把App发送到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上。
你需要使用命名空间来改变根。
>
await NavigationService.NavigateAsync("{Namespace}:///PageB");