如何关闭MvvmCross MasterDetail页面?

时间:2018-01-11 02:53:23

标签: xamarin.forms mvvmcross

我希望我的应用程序显示一个登录页面,然后是一个带有汉堡包的MasterDetail页面'菜单。在汉堡菜单上,我想要一个关闭主细节的注销条目,并再次显示登录页面。我除了注销部分外都有工作。

我复制了MvvmCross Playgrounds示例中的代码,特别是MixedNavFirstPage(伪造登录程序),MixedNavMasterDetailPage('汉堡菜单')和MixedNavMasterRootContentPage。

如果我尝试用await _navigationService.Close(this)关闭MixedNavMasterDetailPage,那么我在MvxFormsPagePresenter.CloseMasterDetailPage()

中得到一个空引用异常

这个问题How to Exit (or Navigate out of )a MasterDetail page to a simple ContentPage in Xamarin. Forms?涵盖了我想在Xamarin.Forms中做的事情。我只是不确定如何在MvvmCross中做同等的事。

1 个答案:

答案 0 :(得分:1)

LoginPage添加MvxContentPagePresentation属性NoHistory = true

然后只需导航到登录页面,当用户登录后,使用NoHistory = true导航到您的MasterDetail页面。

当用户再次注销时,只需导航到您的LoginPage,然后将完全删除NoHistory = true MasterDetail。

[MvxContentPagePresentation(WrapInNavigationPage = false, NoHistory = true)]
public partial class LoginPage : MvxContentPage<LoginViewModel>
{
    public LoginPage()
    {
        InitializeComponent();
    }
}