Xamarin.Forms 4 URI路由导航

Xamarin.Forms 4 URI路由导航,xamarin.forms,Xamarin.forms,我正试图以Xamarin.Forms 4的预发行版为起点,并且我遇到了一个障碍,其中包括了一些导航功能。从Microsoft文档中可以看出: Shell包括一个基于URI的导航体验。URI提供了改进的导航体验,允许导航到应用程序中的任何页面,而无需遵循设置的导航层次结构。此外,它还提供了向后导航的能力,而无需访问导航堆栈上的所有页面 我已经能够设置我的Shell文件并设置我的Route名称。以下代码按预期工作,并将我导航到相应的页面: private async void NavigateToA

我正试图以Xamarin.Forms 4的预发行版为起点,并且我遇到了一个障碍,其中包括了一些导航功能。从Microsoft文档中可以看出:

Shell包括一个基于URI的导航体验。URI提供了改进的导航体验,允许导航到应用程序中的任何页面,而无需遵循设置的导航层次结构。此外,它还提供了向后导航的能力,而无需访问导航堆栈上的所有页面

我已经能够设置我的
Shell
文件并设置我的
Route
名称。以下代码按预期工作,并将我导航到相应的
页面

private async void NavigateToAbout_Execute()
{
    await (App.Current.MainPage as Shell).GoToAsync("app://Testapp/Test/modal");
}
问题:


一旦我成功地导航到此
页面
,我似乎就无法离开
页面
。在上面的引文中,它指出我们应该能够向后导航(到上一个
页面
),但我看不到任何实现这一点的方法。有人有过这样的经验吗?我很感激这是一个预发布版本,所以我可能没有得到回应,但任何想法都会有帮助。

我也有同样的问题。现在看来没事了。这是我的工作:

await Shell.Current.Navigation.PopAsync();
您还可以查看此变量:

Shell.Current.Navigation.NavigationStack

这是一个包含所有推送到shell中定义的页面之上/之上的详细页面的列表。
我已经看到此列表中的0索引始终为空。它表示shell的最后一页。使用
shell.Current.GotoAsync(“detailpage”)
添加到shell中的“detail”页面来自
NavigationStack

中的索引1到n,也许您可以使用Route to导航到上一页的url,例如,您可以路由到“app://test/pages/page1,然后按路线导航回app://test/page/pages"@LeoZhu MSFT,但如果有可用的软件,它应该像按下软件后退按钮一样简单,但没有。它看起来像一个模式页面,除非我导航到上一页的路径,否则无法返回。是的,你是对的。我会做一些研究我现在也在努力弄清楚这一点!我能够通过
wait Shell.Current.Navigation.PushAsync(new DetailPage())实现它。我认为重点是使用GoToAsync,所以如果不能对路由使用back按钮,我不确定为什么会存在这种方法。