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();
};
效果很好。
我设置了一个包含 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();
};
效果很好。