【发布时间】:2020-03-24 04:29:54
【问题描述】:
我有一个有多个屏幕的 xamarin.forms 应用程序。我的页面导航是这样的。
1 --> 2 --> 3 --> 4 --> 5 --> 6
第 6 个页面是使用 Rg.plugin.popup 创建的弹出窗口。用户可以在此层次结构中多次来回导航。但是当他们到达第 6 页时,就会出现一个按钮。在按钮中单击它应该将用户导航到第二页。如何删除所有页面,即; 3,4,5 从堆栈中转到第 2 页。
我尝试了什么
点击按钮:
for (var i = 1; i < countPagesToRemove; i++)
{
Navigation.RemovePage(Navigation.NavigationStack[Navigation.NavigationStack.Count - 2]);
}
await Navigation.PopAsync();
这个link 问同样的问题,但它对我不起作用。
然后我就这样尝试了
await PopupNavigation.Instance.PopAsync();
Application.Current.MainPage = new NavigationPage(new NCDashboard());
它将导航到第二页,但由于堆栈中没有任何内容,因此不会显示返回到第一页的按钮。那么我该如何解决这个问题呢?任何帮助表示赞赏。
【问题讨论】:
-
我试图从弹出窗口中调用第一个选项。 IE;第6页
-
@AndroDevil 您在按钮单击时尝试的代码,在使用
Navigation.PushAsync从一个页面导航到另一个页面时效果很好。我会用Rg.plugin.popup做一些测试并尽快反馈。 -
@WendyZang-MSFT 我对参数“countPagesToRemove”感到困惑。这个参数是什么?
-
在你的情况下,你想删除 3 页,所以: var countPagesToRemove = 3
-
@AndroDevil 我在 GitHub 上发布了我测试的代码。 github.com/WendyZang/Test/tree/master/Navigation_Page截图:imgur.com/17IalYA
标签: xamarin xamarin.forms