Login 如何将Xamarin表单主页从母版详细信息页切换到内容页?

Login 如何将Xamarin表单主页从母版详细信息页切换到内容页?,login,xamarin.forms,navigation,cross-platform,logout,Login,Xamarin.forms,Navigation,Cross Platform,Logout,我正在处理Xamarin表单应用程序。我在App.cs上查看的 CrossSecureStorage.Current.HasKey("SessionToken") 然后导航到HomePage(),这是一个Masterdetailspage,如果没有安全令牌,那么我导航到LoginPage(),这是一个类似这样的内容页面 if (CrossSecureStorage.Current.HasKey("SessionToken")) MainPage = new NavigationPage

我正在处理Xamarin表单应用程序。我在App.cs上查看的

CrossSecureStorage.Current.HasKey("SessionToken")
然后导航到HomePage(),这是一个Masterdetailspage,如果没有安全令牌,那么我导航到LoginPage(),这是一个类似这样的内容页面

if (CrossSecureStorage.Current.HasKey("SessionToken"))
    MainPage = new NavigationPage(new HomePage(true));
else
    MainPage = new NavigationPage(new LoginPage(this));
MainPage = new NavigationPage(new HomePage(true));
CrossSecureStorage.Current.DeleteKey("SessionToken");
MainPage = new NavigationPage(new LoginPage(this));
然后,当用户单击登录按钮时,我将主页设置为HomePage(),如下所示

if (CrossSecureStorage.Current.HasKey("SessionToken"))
    MainPage = new NavigationPage(new HomePage(true));
else
    MainPage = new NavigationPage(new LoginPage(this));
MainPage = new NavigationPage(new HomePage(true));
CrossSecureStorage.Current.DeleteKey("SessionToken");
MainPage = new NavigationPage(new LoginPage(this));
当用户单击注销按钮时,我将主页设置为像这样再次登录

if (CrossSecureStorage.Current.HasKey("SessionToken"))
    MainPage = new NavigationPage(new HomePage(true));
else
    MainPage = new NavigationPage(new LoginPage(this));
MainPage = new NavigationPage(new HomePage(true));
CrossSecureStorage.Current.DeleteKey("SessionToken");
MainPage = new NavigationPage(new LoginPage(this));
当用户已经注销时,它可以正常工作。登录和注销都可以正常工作。但如果用户已经登录,则表示

CrossSecureStorage.Current.HasKey("SessionToken")
具有值,然后在注销按钮按下时应用程序崩溃并获得此异常

System.ArgumentException: Handle must be valid.Parameter name: instance
我发现,如果在App.cs中,我将主页从MasterDetailsPage更改为一个新的ContentPage,然后按按钮将MainPage更改为HomePage,则工作正常,但我希望直接向用户显示主页。(意味着,若分配给主页的第一页是内容页,那个么应用程序工作正常,但若第一页是MasterDetailsPage,那个么应用程序在将主页重新分配给任何页面时崩溃。) 请帮忙。
提前感谢。

不要将主控详细信息页面添加到导航页面。这是不推荐的设计,会产生意外的结果。将主页设置为masterdetals页,而不将masterdelais页添加到导航页不将MasterDetail页添加到导航页。这是不推荐的设计,会产生意外的结果。将主页设置为masterdetals页,而不将masterdelais页添加到导航页