如何将不可见的ViewModel添加到MvvmCross中的导航堆栈

我有以下应用情况。 在启动时,我想转到“List”ViewModel作为启动视图模型/视图。 但我希望用户能够选择BACK来转到“菜单”ViewModel。 如何在MvvmCross中完成?

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

对于Android或iPhone用户而言,这种流程也没有那么大的意义……所以你可能会更好地考虑替代的UX流程 – 你仍然可以使用流ListView->菜单 – > ……但你可以避免“ BACK“用户理解为BACK的语法。


我想我会将这种用户体验实现为:

在启动时,通常导航到ListView / ListViewModel。

以某种方式呈现 – 菜单,按钮或超链接 – 让用户导航到HomeView / HomeViewModel – 但尝试使用“主页”或“菜单”比喻而不是“后退” – “后退意味着回来”在WP7上。

在导航到Home中,在导航中设置“ClearTop”的标志 – 例如:

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

iOS和WP7将解释此“ClearTop”标志,以便在您到达Home后清除导航后退堆栈。 然而,遗憾的是它目前在Android中并不完美 – 所以你需要在你的Android UI项目中做一些聪明的事情 – 例如,可能会以某种方式找到一种方法来使用“NoHistory”标志来进行特殊的开始ListView / Activity。


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