【发布时间】:2014-02-07 20:19:24
【问题描述】:
我可以使用 mvvmCross 以某种方式轻松地将当前视图模型替换为另一个视图模型吗?
当我使用 ShowViewModel 时,当前视图停留在后退按钮堆栈上。的组合 Close(this) 和 ShowViewModel 似乎不起作用。
是否可以轻松启动另一个视图模型,以便该视图中的后退按钮将您带到上一个视图而不是当前视图?
【问题讨论】:
我可以使用 mvvmCross 以某种方式轻松地将当前视图模型替换为另一个视图模型吗?
当我使用 ShowViewModel 时,当前视图停留在后退按钮堆栈上。的组合 Close(this) 和 ShowViewModel 似乎不起作用。
是否可以轻松启动另一个视图模型,以便该视图中的后退按钮将您带到上一个视图而不是当前视图?
【问题讨论】:
您通常可以通过在您定位的每个平台上编写自定义演示者来完成此类事情。
这并不完美 - 因为平台并不都提供相同的功能 - 但您通常可以找到一种方法让您的应用做它想做的事情。
例如:
Show 方法,使其在调用 Navigate 之前调用 RemoveBackEntry
Show,以便它操作 UINavigationController 的 ViewControllers 数组(C# 等效于 How to remove a specific view controller from uinavigationcontroller stack?)。NoHistory=true之类的技巧
有关自定义演示者(本质上是自定义导航服务)的更多信息,请参阅 https://github.com/MvvmCross/MvvmCross/wiki/Customising-using-App-and-Setup#custom-presenters 和 http://slodge.blogspot.co.uk/2013/06/presenter-roundup.html 上的链接
【讨论】: