Prism Xamarin Forms INavigationService GoBackAsync 未返回上一页

Posted

技术标签:

【中文标题】Prism Xamarin Forms INavigationService GoBackAsync 未返回上一页【英文标题】:Prism Xamarin Forms INavigationService GoBackAsync not returning to previous page 【发布时间】:2018-07-21 00:36:49 【问题描述】:

可能是因为我是 Prism 和 Xamarin Froms 的新手,因此我面临导航的基本问题。

让我从我的实施细节开始,然后是手头的问题。

    我有一个 MasterDetail 页面(名为 Home),这是我的主页。 母版页中有几个菜单项。其中之一是合作伙伴。 单击合作伙伴菜单项时,将调用 NavigationService.NavigateAsync("Navigation/Partner") 方法。其中“NavigationService”属于“INavigationService”类型。 这会打开一个名为“合作伙伴”的页面,它是一个标签页(TabbedPage)。第一个选项卡是一个名为“PartnerAll”的内容页。 PartnerAll 页面包含一个列表视图。单击列表视图项时,通过调用 NavigationService.NavigateAsync("Navigation/PartnerDetails", parameters, false, true); 会打开一个新页面“PartnerDetails”; 在 PartnerDetails 页面上有一个“取消”按钮。单击此按钮时,我调用 await NavigationService.GoBackAsync(null, false, true);

问题: 当我调用 GoBackAsync 时,合作伙伴页面的 PartnerAll 选项卡不会发生导航。 PartnerDetails 页面保持打开状态。

我哪里错了。我应该怎么做才能让它发挥作用?

请帮忙。

最好的问候, 安库尔耆那教

【问题讨论】:

【参考方案1】:

按照此问题(相关问题)中提供的建议解决了该问题: Prism Xamarin Forms ToolbarItem appearing twice

【讨论】:

【参考方案2】:

在第 5 点中,您使用新的根页面 PartnerDetails 创建了新的导航页面,并且导航堆栈只有一页,没有可弹出的内容。

变化:

PartnerAll 页面包含一个列表视图。单击列表视图项时, 通过调用打开新页面“PartnerDetails” NavigationService.NavigateAsync("导航/合作伙伴详细信息", 参数, false, true);

收件人:

PartnerAll 页面包含一个列表视图。单击列表视图项时, 通过调用打开新页面“PartnerDetails” NavigationService.NavigateAsync("PartnerDetails", 参数, false, 真);

【讨论】:

以上是关于Prism Xamarin Forms INavigationService GoBackAsync 未返回上一页的主要内容,如果未能解决你的问题,请参考以下文章

走进 Prism for Xamarin.Forms

LINKs: Xamarin.Forms + Prism

使用 Xamarin.Forms 和 Prism 的图像点击事件

Prism Xamarin Forms ToolbarItem 出现两次

为啥在使用 Prism 在 Xamarin.Forms 中导航到 root 时,我的 NavigationPage 顶部会出现默认标题?

使用 Prism 在 Xamarin Forms 的后台服务中实现依赖注入