首页 > 解决方案 > 如何使用 Prism.Forms 框架从普通页面导航到 MasterDetailPage?

问题描述

所以我有一个启动屏幕和一个 LoginScreen,在用户登录后,他会看到一个 MasterDetailPage,并且有一个注销选项,我想要实现的是清除 masterdetail 导航并使用 Prism 进入登录页面。表单但是当我执行“NavigationPage/LoginPage”时,它仍然激活了 MasterDetailPage 导航,有没有办法使用 Prism 禁用此行为

登录后

离开后[![再次登录后MasteDetailNavigation] 3 ] 3

任何帮助都会有所帮助

标签: c#iosxamarin.formsxamarin.iosprism

解决方案


正如我从您的问题中看到的那样,您想要重置导航堆栈和主详细信息页面并导航到登录页面的“清除”页面。如果你想实现这一点,你不想使用NavigationPage/LoginPage你将需要使用Absolute navigation,因为在 Prism 中使用绝对导航,你将能够重置整个导航堆栈,它相当于:

Application.Current.MainPage = new SomePage()

你可以在这里找到更多关于它的信息。

但基本上你需要做的是像这样使用 Prism Absolute 导航:

//absolute short-syntax
_navigationService.NavigateAsync("/YourPage"); //notice the prefix /

//absolute URI-syntax
_navigationService.NavigateAsync(new Uri("http://www.brianlagunas.com/YourPage", UriKind.Absolute));

代码示例来自 Prism Library 文档站点

另外,我建议您查看我的博客文章How to make Master-Detail Page Navigation menu in Xamarin.Forms with Prism

祝你编码好运!


推荐阅读