我设置了一个 5 页的 FreshTabbedNavigationContainer。在第 5 个选项卡式页面中,这是一个 SettingsPage,其中有一种显示方式,而 AboutPage 则通过 SettingsPageModel 显示,如下所示
public Command AboutCommand
{
get
{
return new Command(() =>
{
CoreMethods.PushPageModel<AboutPageModel>();
});
}
}
当用户通过选择另一个选项卡离开时,该另一个选项卡将正确显示。如果用户通过选项卡选择 SettingsPage,则子 AboutPage 将自动显示。选择另一个选项卡页面时,我想从导航堆栈中删除大约页面。
我在 AboutPage.xaml.cs 中试过这个
protected override void OnDisappearing()
{
base.OnDisappearing();
((AboutPageModel)BindingContext).CoreMethods.RemoveFromNavigation();
}
这可行,但如果在 AboutPage 中按下应用程序上的后退按钮,那么它已经从导航堆栈中删除,并且应用程序崩溃。
如何检查 PageModel 是否仍在导航堆栈中?