c# - 导航到已在 Backstack 中查看
问题描述
我目前正在MvvmCross
一个Xamarin.Forms
应用程序中使用。
我的情况是,在用户旅程的某个时刻,后台堆栈看起来像这样
根目录 -> View1 -> View2 -> View3
我需要做的是从 View3 导航回 View1。
我不能只说
NavigationService.Navigate<ViewMode1>();
因为这只会将其添加到后台堆栈,导致
根目录 -> View1 -> View2 -> View3 -> View 1
我需要的是
根 -> View1
我查看了文档并遇到了
NavigationService.ChangePresentation(new MvxPresentationHint(typeof(ViewModel1)));
但这似乎没有任何作用。我怎样才能做到这一点?
解决方案
您可以计算导航堆栈中的页面数并执行以下操作:
Navigation.RemovePage(Navigation.NavigationStack[Navigation.NavigationStack.Count - 2]);
希望它可以解决您的问题。
推荐阅读
- php - 四项回显后如何新建一列?
- sql-server - Azure 数据工厂中 Azure-SSIS 集成运行时的 SQL Server 许可证
- javascript - 返回内部还是外部?
- java - 仅在 androidTest 上:仅从 Android O 开始支持 Invoke-customs
- python - 定义一个函数,将不同美国硬币的数量作为参数,并打印出所需的最简单的纸币和硬币数量
- solr - 如何从 Solr 的标准分词器中删除字符?
- mongodb - 聚合函数增强以包含多个没有 _id 字段的字段
- sql - 查询以找到最佳匹配
- aframe - 有没有关于在没有 cloneNode() 的情况下在 A-Frame 上重新做父母的解决方案?
- javascript - 将脚本标签导入反应应用程序(未定义)