Xamarin Master Detail prism 导航栏后退按钮
Posted
技术标签:
【中文标题】Xamarin Master Detail prism 导航栏后退按钮【英文标题】:Xamarin Master Detail prism Nav bar back button 【发布时间】:2020-08-18 22:17:12 【问题描述】:我有一个使用棱镜的 masterdetailview。当我单击其中一个菜单项时,汉堡菜单会显示在我单击的新页面的导航栏上,我真的只是希望顶部导航栏显示一个后退按钮并能够返回。我怎样才能做到这一点? 当我的应用加载时,我会调用
await NavigationService.NavigateAsync("/MainPage/NavigationPage");
我想我可以打电话
await NavigationService.NavigateAsync("/MainPage/NavigationPage/InviteFriends");
这将为新页面提供一个返回主页的按钮,但是当我这样做时它什么也没做
编辑
如果我改成
await NavigationService.NavigateAsync("/MainPage/NavigationPage/FeaturePage");
主页将被称为(功能页面)它根本不会加载页面。
MainPage 是我的其他页面列表,如果有帮助,当按下汉堡包时会显示该列表。特色页面是我希望显示在汉堡包页面下方并成为“主”屏幕的页面。
我这样做对吗?
【问题讨论】:
点击菜单项时你的代码如何? 就像cahyo说的,我们需要更多关于代码和截图的细节。 @WendyZang-MSFT 更新 @cahyo 更新了!谢谢! 【参考方案1】:因此,如果我们以您的示例为例,您将拥有以下导航堆栈:
主页面/导航页面
假设您的导航代码在主从视图模型中如下所示
await NavigationService.NavigateAsync("/MainPage/NavigationPage/InviteFriends");
这将导致以下导航堆栈:
/MainPage/NavigationPage/InviteFriends
这是因为导航是从主从页面调用的。 主从页面被视为 Prism 中的根页面,当从主从页面导航时,它会将目标页面设置为主从详细信息页面。
查看这篇文章以获得更详细的细分Link
小心 - 从 /MainPage 开始会清除导航堆栈
一个快速的解决方案是将您的主页添加到导航调用中:
await NavigationService.NavigateAsync("MainPage/NavigationPage/HomePage/InviteFriends");
这将创建以下内容:
MasterDetailPage/NavigationPage/HomePage/InviteFriends
这应该有望创建您正在寻找的响应。 希望这有帮助。编码愉快!
编辑:
我认为,如果您将初始详细信息页面分离到自己的文件中,您应该能够执行以下操作:
await NavigationService.NavigateAsync("MainPage/NavigationPage/HomePage/InviteFriends");
【讨论】:
这正是我想做的。我实际上已经尝试过这个东西,但是当我点击按钮时没有任何反应,不知道为什么 @MicahArmantrout 你能提供一些导航代码的sn-ps吗? 我刚刚在我的问题中包含了实际来源 @MicahArmantrout 是您的主页在主详细信息页面的详细信息中吗?还是在单独的文件中?您的代码只是设置详细信息页面。我将编辑我的答案以匹配您的情况 不,它们在单独的页面中,我更新了我的问题以提供更多详细信息以上是关于Xamarin Master Detail prism 导航栏后退按钮的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Master Detail prism 导航栏后退按钮
无法捕获 Xamarin ListView GroupHeader 单击事件
Win10 UWP开发系列:实现Master/Detail布局
当 Master 是 UITabBarController 时,从 UISplitViewController Detail 转到 Master?