我试图抢先使用Xamarin.Forms 4的预发布版本,并且遇到了一些包含了导航功能的障碍。从Microsoft文档中可以看到:
Shell包含基于URI的导航体验。 URI提供了改进的导航体验,允许导航到应用程序中的任何页面,而不必遵循设置的导航层次结构。此外,它还具有向后导航的功能,而无需访问导航堆栈上的所有页面。
我已经能够设置我的Shell
文件并设置我的Route
名称。以下代码可以正常工作,并引导我进入相应的Page
:
private async void NavigateToAbout_Execute()
{
await (App.Current.MainPage as Shell).GoToAsync("app://Testapp/Test/modal");
}
问题:
一旦我成功导航到此Page
,似乎我就无法离开Page
。在上面的引用中,它指出我们应该具有向后导航(到上一个Page
的能力),但是我看不到任何实现此目的的方法。有人对此有经验吗?我很欣赏这是一个预发布版本,所以我可能没有得到任何答复,但是任何想法都会有所帮助。
答案 0 :(得分:1)
我有同样的问题。现在看来还可以。这项工作对我来说:
await Shell.Current.Navigation.PopAsync();
您还可以查看此变量:
Shell.Current.Navigation.NavigationStack
这是一个列表,其中所有详细信息页面都被推入外壳中定义的页面之上/之内。
我已经看到,该列表中的0索引始终为null。它代表外壳程序的最后一页。使用shell.Current.GotoAsync("detailpage")
添加到外壳程序的“详细”页面从NavigationStack
中的索引1到n。