【问题标题】:Replace current viewmodel with another in mvvmCross用 mvvmCross 中的另一个替换当前视图模型
【发布时间】:2014-02-07 20:19:24
【问题描述】:

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

当我使用 ShowViewModel 时,当前视图停留在后退按钮堆栈上。的组合 Close(this) 和 ShowViewModel 似乎不起作用。

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

【问题讨论】:

    标签: c# mvvmcross


    【解决方案1】:

    您通常可以通过在您定位的每个平台上编写自定义演示者来完成此类事情。

    这并不完美 - 因为平台并不都提供相同的功能 - 但您通常可以找到一种方法让您的应用做它想做的事情。

    例如:

    • 在 WindowsPhone 中,您可以更改演示者的 Show 方法,使其在调用 Navigate 之前调用 RemoveBackEntry
    • 在 iOS 中,您可以更改演示者的 Show,以便它操作 UINavigationControllerViewControllers 数组(C# 等效于 How to remove a specific view controller from uinavigationcontroller stack?)。
    • 在Android中,你通常不得不求助于使用NoHistory=true之类的技巧

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

    【讨论】:

    • 谢谢。我相信这是一项标准任务,如果可能的话,在基本库中实现它是有意义的。
    猜你喜欢
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    相关资源
    最近更新 更多