首页 > 解决方案 > 导航到已在 Backstack 中查看

问题描述

我目前正在MvvmCross一个Xamarin.Forms应用程序中使用。

我的情况是,在用户旅程的某个时刻,后台堆栈看起来像这样

根目录 -> View1 -> View2 -> View3

我需要做的是从 View3 导航回 View1。

我不能只说

NavigationService.Navigate<ViewMode1>();

因为这只会将其添加到后台堆栈,导致

根目录 -> View1 -> View2 -> View3 -> View 1

我需要的是

根 -> View1

我查看了文档并遇到了

NavigationService.ChangePresentation(new MvxPresentationHint(typeof(ViewModel1)));

但这似乎没有任何作用。我怎样才能做到这一点?

标签: c#xamarin.formsmvvmcross

解决方案


您可以计算导航堆栈中的页面数并执行以下操作:

Navigation.RemovePage(Navigation.NavigationStack[Navigation.NavigationStack.Count - 2]);

希望它可以解决您的问题。


推荐阅读