我如何实现导航堆栈,该导航堆栈在我登录时将我的主要详细信息页面转换为主页面并设为根

时间:2018-12-08 09:58:26

标签: xamarin xamarin.forms navigation

我正在开发一个应用程序,其中有一个欢迎页面,一个登录页面和一个主要详细信息页面。我需要在登录到用户时显示主详细信息页面,该操作已经完成,但是我的主详细信息页面与主详细信息页面中任意一个汉堡菜单上的箭头导航箭头(通常返回)一致,如果单击回到我的登录按钮。登录用户后,我该怎么办?我的主要详细信息页面是我的主页,也是导航堆栈中的唯一页面,这样他们就无法返回登录屏幕。

我已经取得了进步,而且我已经做到了:

var myMasterDetailPage = new MyMasterDEtailPage();
Navigation.InsertPageBefore(new myMasterDetailPage, 
Navigation.NavigationStack.FirstOrDefault());
Navigation.PopToRoot();

有了以上这些,当单击“后退”按钮时,不再显示我的登录页面(这就是我想要的),但是我仍然在主详细信息页面的汉堡菜单上方看到一个小条,没有箭头,但是您可以看到,我了解这是因为MyMasterDetailPage的实例仍在NavigationPage中。

PD:我使用MessagingCenter进行视图模型和视图之间的通信,这种通信效果很好。

PD2:我在Navigation.PopToRoot()之后尝试了App.Current.MainPage = myMasterDetailPage,但是它也不起作用。谢谢!

1 个答案:

答案 0 :(得分:0)

简单的解决方案:

Application.Current.MainPage = new myMasterDetailPage ();

但是要小心,这是xamarin live播放器中未反映的事情。