使用Xamarin.Forms v4.5和Prism v7.2
我有一个包含3页(PageA,PageB和PageC)的APP。
从PageA,我可以导航到PageB,从PageB导航到PageC。从PageC,我可以点击“后退”按钮并返回到PageB。
我的问题是,当我从PageA或PageC导航到PageB时,Prism是否提供一种方法,通过按后退按钮来确定我是否最终进入PageB?
目前,Xamarin.Forms没有提供一种方法来挂钩到基础导航服务,并在某些流程中(例如,当有人单击硬件后退按钮时)拦截整个导航过程。结果,我们的工作能力受到限制,因此无法支持IConfirmNavigation,从而使您无法导航。
话虽如此,我们能够看到弹出了一个页面,但我们仍然能够调用OnNavigatedFrom
/ OnNavigatedTo
。您可以通过获取NavigationMode轻松确定发生了什么。为此,您的代码可能如下所示:
public void OnNavigatedTo(INavigationParameters parameters)
{
var mode = parameters.GetNavigationMode();
switch(mode)
{
case NavigationMode.New:
break;
case NavigationMode.Back:
break;
case NavigationMode.Forward:
break;
}
}