我有一个使用棱镜的主细节视图。当我点击其中一个菜单项时,汉堡菜单会显示在我点击的新页面的导航栏上,我真的只想让顶部的导航栏显示一个后退按钮,然后可以返回。我怎样才能做到这一点?当我的应用程序加载时,我会调用
await NavigationService.NavigateAsync("/MainPage/NavigationPage");
我想我可以打电话给
await NavigationService.NavigateAsync("/MainPage/NavigationPage/InviteFriends");
这将为新页面提供一个返回主页的按钮,但当我这样做时,它不会做任何
编辑
如果我换成
await NavigationService.NavigateAsync("/MainPage/NavigationPage/FeaturePage");
这就是主页的名称(Feature page(,它根本不会加载该页面。
主页是我要转到的其他页面的列表,如果有帮助的话,当汉堡被按下时会显示出来。特色页面是我想在汉堡页面下方显示的页面;主页";屏幕
我这样做对吗?
因此,如果我们以您的示例为例,您有以下导航堆栈:
MainPage/NavigationPage
假设您的导航代码在主细节视图模型中是这样的
await NavigationService.NavigateAsync("/MainPage/NavigationPage/InviteFriends");
这将导致以下导航堆栈:
/MainPage/NavigationPage/InviteFriends
这是因为导航是从主控详细信息页调用的。主详细信息页面在Prism中被视为根页面,当从主详细信息页导航时,它会将目标页面设置为主详细信息的详细信息页。
查看本文了解更多详细的故障链接
小心-从/MainPage开始将清除导航堆栈
一个快速的解决方案是将您的主页添加到导航呼叫中:
await NavigationService.NavigateAsync("MainPage/NavigationPage/HomePage/InviteFriends");
这将创建以下内容:
MasterDetailPage/导航页面/主页/邀请好友
这应该有望创建您想要的响应。希望这能有所帮助。编码快乐!
编辑:
我认为,如果你将最初的详细信息页面分离到自己的文件中,你应该能够做到以下几点:
await NavigationService.NavigateAsync("MainPage/NavigationPage/HomePage/InviteFriends");