如何将不可见的视图模型添加到 MvvmCross 中的导航堆栈

本文关键字:添加 MvvmCross 堆栈 导航 模型 视图 | 更新日期: 2023-09-27 18:31:42

我有以下应用程序情况。在启动时,我想转到"列表"视图模型作为启动视图模型/视图。但我希望用户能够选择 返回 转到"菜单"视图模型。如何在 MvvmCross 中完成此操作?

如何将不可见的视图模型添加到 MvvmCross 中的导航堆栈

如果你想支持WP7,那么导航将很难通过市场提交过程 - 回流在WP7上是神圣的。

对于Android或iPhone用户来说,这种流程也没有多大意义。因此,您可能最好考虑另一种 UX 流程 - 您仍然可以拥有流列表视图>菜单>...但您可以避免用户理解为 BACK 的"BACK"语法。


我想我会将这种类型的 UX 实现为:

启动时,正常导航到列表视图/列表视图模型。

呈现某种方式 - 菜单,按钮或超链接 - 让用户导航到HomeView/HomeViewModel - 但尝试使用"主页"或"菜单"隐喻而不是"返回"隐喻 - "后退意味着后退",特别是在WP7上。

在导航到主页时,在导航中设置"ClearTop"标志 - 例如:

public IMvxCommand GoHomeCommand
{
    get
    {
        return new MvxRelayCommand(RequestNavigate<HomeViewModel>(true));
    }
}

此"ClearTop"标志将由iOS和WP7解释,以便在您到达主页后清除导航后退堆栈。然而,遗憾的是,它目前在Android中不能完美运行 - 所以你需要在你的Android UI项目中做一些聪明的事情 - 例如,也许以某种方式找到一种方法来使用"NoHistory"标志作为特殊的启动ListView/Activity。


有兴趣听听是否有其他方法可以做到这一点。