Xamarin形式-棱镜检测GoBack

问题描述 投票:0回答:1

使用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 prism
1个回答
1
投票

目前,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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.