Xamarin Master Detail 棱镜导航栏后退按钮

Xamarin Master Detail prism Nav bar back button

我有一个使用 prism 的 masterdetailview。当我单击其中一个菜单项时,汉堡菜单会显示在我单击的新页面的导航栏上,我真的只希望顶部导航栏显示后退按钮并能够返回。我怎样才能做到这一点? 当我的应用程序加载时,我调用

      await NavigationService.NavigateAsync("/MainPage/NavigationPage");

我想我可以打电话

  await NavigationService.NavigateAsync("/MainPage/NavigationPage/InviteFriends");

这将为新页面提供返回主页的后退按钮,但是当我这样做时它什么也没做

编辑

如果我改成

  await NavigationService.NavigateAsync("/MainPage/NavigationPage/FeaturePage"); 

这就是主页的名称(特色页面),它根本不会加载该页面。

MainPage 是我要转到的其他页面的列表,如果有帮助,则在按下汉堡包时显示。功能页面是我想显示在汉堡包页面下方并作为“主页”屏幕的页面。

我做得对吗?

因此,如果我们以您的示例为例,您将拥有以下导航堆栈:

MainPage/NavigationPage

让我们假设您的导航代码在 Master-Detail 视图模型

中看起来像这样
await NavigationService.NavigateAsync("/MainPage/NavigationPage/InviteFriends");

这将导致以下导航堆栈:

/MainPage/NavigationPage/InviteFriends

这是因为导航是从 master-detail 页面调用的。 master-detail 页面被视为 Prism 中的根页面,当从 Master-detail 页面导航时,它将目标页面设置为 master-detail.

的详细页面

查看这篇文章以获得更详细的细分Link

注意 - 从 /MainPage 开始将清除导航堆栈

对此的一个快速解决方案是将您的主页添加到导航调用中:

await NavigationService.NavigateAsync("MainPage/NavigationPage/HomePage/InviteFriends");

这将创建以下内容:

MasterDetailPage/NavigationPage/HomePage/InviteFriends

这应该有望创建您正在寻找的响应。 希望这有所帮助。编码愉快!

编辑:

我认为如果您将初始详细信息页面分离到它自己的文件中,您应该能够执行以下操作:

await NavigationService.NavigateAsync("MainPage/NavigationPage/HomePage/InviteFriends");