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

时间:2017-07-20 16:17:34

标签: xamarin.forms freshmvvm

我已经设置了一个5页的FreshTabbedNavigationContainer。 在第5个标签页中,这是一个SettingsPage,其中有一种显示方式,AboutPage通过SettingsPageModel显示,如下所示 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是否仍在导航堆栈中?

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题:)

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

MainPage = tabbedNavigation;

然后我添加以下代码

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

效果很好。