如何关闭 MvvmCross MasterDetail 页面?
How do I close an MvvmCross MasterDetail page?
我希望我的应用显示一个登录页面,然后是一个带有 'hamburger' 菜单的 MasterDetail 页面。在汉堡菜单上,我想要一个注销条目来关闭主详细信息并再次显示登录页面。除了注销部分,我都在工作。
我从 MvvmCross Playgrounds 示例中复制了代码,特别是 MixedNavFirstPage(伪造登录过程)、MixedNavMasterDetailPage('hamburger menu')和 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 中做同样的事情。
在您的 LoginPage
中添加 MvxContentPagePresentation
属性 NoHistory = true
然后简单地导航到登录页面,当用户登录后,导航到您的 MasterDetail 页面也使用 NoHistory = true
。
当用户再次注销时,只需导航到您的 LoginPage
,作为 NoHistory = true
,MasterDetail 将被完全删除。
[MvxContentPagePresentation(WrapInNavigationPage = false, NoHistory = true)]
public partial class LoginPage : MvxContentPage<LoginViewModel>
{
public LoginPage()
{
InitializeComponent();
}
}
我希望我的应用显示一个登录页面,然后是一个带有 'hamburger' 菜单的 MasterDetail 页面。在汉堡菜单上,我想要一个注销条目来关闭主详细信息并再次显示登录页面。除了注销部分,我都在工作。
我从 MvvmCross Playgrounds 示例中复制了代码,特别是 MixedNavFirstPage(伪造登录过程)、MixedNavMasterDetailPage('hamburger menu')和 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 中做同样的事情。
在您的 LoginPage
中添加 MvxContentPagePresentation
属性 NoHistory = true
然后简单地导航到登录页面,当用户登录后,导航到您的 MasterDetail 页面也使用 NoHistory = true
。
当用户再次注销时,只需导航到您的 LoginPage
,作为 NoHistory = true
,MasterDetail 将被完全删除。
[MvxContentPagePresentation(WrapInNavigationPage = false, NoHistory = true)]
public partial class LoginPage : MvxContentPage<LoginViewModel>
{
public LoginPage()
{
InitializeComponent();
}
}