Xamarin.forms FreshMvvm-关闭FreshTabbedNavigationContainer中页面的子页面

Xamarin.forms FreshMvvm-关闭FreshTabbedNavigationContainer中页面的子页面,xamarin.forms,freshmvvm,Xamarin.forms,Freshmvvm,我已经设置了一个5页的FreshTabbedNavigationContainer。 在第五个选项卡式页面中,这是一个设置页面,其中有一种显示方式,通过设置页面模型显示的关于页面如下 关于命令的公共命令 { 得到 { 返回新命令(()=> { corethods.PushPageModel(); }); } } 当用户通过选择另一个选项卡进行导航时,该另一个选项卡将正确显示。 如果用户通过选项卡选择设置页面,则会自动显示子页面AboutPage。 当选择另一个选项卡页面时,我想从导航堆栈中删除

我已经设置了一个5页的FreshTabbedNavigationContainer。 在第五个选项卡式页面中,这是一个设置页面,其中有一种显示方式,通过设置页面模型显示的关于页面如下

关于命令的公共命令
{
得到
{
返回新命令(()=>
{
corethods.PushPageModel();
});
}
}

当用户通过选择另一个选项卡进行导航时,该另一个选项卡将正确显示。 如果用户通过选项卡选择设置页面,则会自动显示子页面AboutPage。 当选择另一个选项卡页面时,我想从导航堆栈中删除AboutPage

我在AboutPage.xaml.cs中尝试过这个

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        ((AboutPageModel)BindingContext).CoreMethods.RemoveFromNavigation();
    }
这是可行的,但如果在AboutPage中按下应用程序上的“后退”按钮,则该按钮已从导航堆栈中删除,应用程序将崩溃


如何检查页面模型是否仍在导航堆栈中?

我已设法解决了此问题:)

在App构造函数中的App.xaml.cs文件中,在设置主页之后,我在其中创建了FreshTabbedNavigationContainer

MainPage = tabbedNavigation;
然后添加以下代码

tabbedNavigation.CurrentPageChanged += (sender, e) => {
   tabbedNavigation.PopToRoot();
};
它工作得很好