我有以下应用情况。 在启动时,我想转到“列表”ViewModel作为启动视图模型/视图。 但我希望用户能够选择BACK来转到“菜单”ViewModel。 如何在MvvmCross中完成?
答案 0 :(得分:5)
如果你想支持WP7,那么导航将难以通过市场提交过程 - 回流在wp7上是神圣的。
对于Android或iPhone用户而言,这种流程也没有那么大的意义......所以你可能会更好地考虑替代的UX流程 - 你仍然可以拥有流ListView-> Menu-> ...但是你可以避免用户理解为BACK的“BACK”语法。
我认为我将这种用户体验实现为:
启动时,正常导航到ListView / ListViewModel。
以某种方式 - 菜单,按钮或超链接 - 让用户导航到HomeView / HomeViewModel - 但尝试使用“家”或“菜单”比喻而不是“后退” - “返回意味着回来“特别是在WP7上。
在导航到Home中,在导航中设置“ClearTop”的标志 - 例如:
public IMvxCommand GoHomeCommand
{
get
{
return new MvxRelayCommand(RequestNavigate<HomeViewModel>(true));
}
}
iOS和WP7将解释此“ClearTop”标志,以便在您到达Home后清除导航后退堆栈。然而,遗憾的是它目前在Android中并不完美 - 因此您需要在Android UI项目中做一些聪明的事情 - 例如也许某种程度上找到一种方法来使用“NoHistory”标志进行特殊的开始ListView / Activity。
有兴趣听听是否有其他方法可以做到这一点。