在mvvmCross中将当前视图模型替换为另一个视图模型

时间:2014-01-18 12:10:57

标签: c# mvvmcross

我可以使用mvvmCross以某种方式轻松地将当前的viewmodel替换为另一个吗?

当我使用ShowViewModel时,当前视图保持在后退按钮堆栈上。的组合 关闭(这个)和ShowViewModel似乎不起作用。

是否可以轻松启动另一个视图模型,以便该视图中的后退按钮可以转到上一个视图而不是当前视图?

1 个答案:

答案 0 :(得分:1)

您通常可以通过在您定位的每个平台上编写自定义演示文稿来执行此类操作。

这并不完美 - 因为平台并不都具有相同的功能 - 但您通常可以找到一种方法让您的应用程序按照自己的意愿去做。

例如:

  • 在Windows Phone中,您可以更改演示者的Show方法,以便在调用RemoveBackEntry之前调用Navigate
  • 在iOS中,您可以更改演示者的Show,以便它操纵UINavigationController的{​​{1}}数组(C#相当于How to remove a specific view controller from uinavigationcontroller stack?)。
  • 在Android中,您通常不得不诉诸使用ViewControllers
  • 等技巧

有关自定义演示者(实质上是自定义导航服务)的更多信息,请参阅https://github.com/MvvmCross/MvvmCross/wiki/Customising-using-App-and-Setup#custom-presenters以及http://slodge.blogspot.co.uk/2013/06/presenter-roundup.html上的链接