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");
我有一个使用 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");