Mvvm跨多个视图模型进行导航

时间:2018-07-23 08:40:00

标签: xamarin xamarin.ios xamarin.android mvvmcross

我正在使用Xamarin和MvvmCross(当前为5.6.2)开发适用于Android(后来为iOS)的应用。我正在使用两个平台(Xamarin.Android,Xamarin.iOS)的本机UI。

该应用程序具有类似文件夹的层次结构。在简单的情况下,导航到该结构然后向后导航是可以的。

在某些情况下,尽管我需要从另一个顶级视图模型导航到此层次结构。为了支持正确的向后导航,导航堆栈应从原来的位置更改为

home -> vm1

home -> root -> folder -> folder -> vm2

当前,我在await NavigationService.Close()中调用vm1,在home中使用返回的值,然后对await NavigationService.Navigate<>()进行一系列调用以到达vm2

导航(也返回)工作正常,但是在过渡到vm2时,会短暂显示home等的视图。这真的让人分心。

我如何浏览多个视图模型(并使用返回值等),但不显示除最后一个视图以外的视图?

1 个答案:

答案 0 :(得分:0)

由于MVVMCross allows only to Navigate到特定VM,因此无法实现。 通过普通的Xamarin.Forms导航,您可以使用:

Navigation.InsertPageBefore (page, before);
Navigation.RemovePage (page);

并修改导航堆栈,插入或删除所需的页面。

Documentation