FreshMvvm - 关闭 FreshTabbedNavigationContainer 中页面的子页面

FreshMvvm - Closing the child page of a page in FreshTabbedNavigationContainer

我设置了一个包含 5 个页面的 FreshTabbedNavigationContainer。 在第 5 个选项卡式页面中,这是一个 SettingsPage,其中有一种显示方式和通过 SettingsPageModel 显示的 AboutPage,如下所示 public Command AboutCommand { get { return new Command(() => { CoreMethods.PushPageModel<AboutPageModel>(); }); } }

当用户通过选择另一个选项卡离开时,另一个选项卡会正确显示。 如果用户通过选项卡选择 SettingsPage,则会自动显示子 AboutPage。 我想在选择另一个标签页时从导航堆栈中删除 AboutPage。

我在 AboutPage.xaml.cs

中尝试过这个
    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        ((AboutPageModel)BindingContext).CoreMethods.RemoveFromNavigation();
    }

如果在 AboutPage 中按下应用程序上的后退按钮,则此方法有效,然后它已从导航堆栈中删除,并且应用程序崩溃。

如何检查 PageModel 是否仍在导航堆栈中?

我已经成功解决了问题:)

在我创建 FreshTabbedNavigationContainer 的 App 构造函数的 App.xaml.cs 文件中,在设置 MainPage

之后
MainPage = tabbedNavigation;

然后我添加下面的代码

tabbedNavigation.CurrentPageChanged += (sender, e) => {
   tabbedNavigation.PopToRoot();
};

效果很好。