次のアプリの状況があります。起動時に、起動ビューモデル/ビューとして「リスト」ビューモデルに移動したい。しかし、ユーザーが戻るを選択して「メニュー」ビューモデルに移動できるようにしたいと考えています。これは MvvmCross でどのように行われますか?
1 に答える
WP7をサポートしたい場合、そのナビゲーションはマーケットプレイスの提出プロセスを通過するのに苦労します.wp7ではバックフローが神聖です.
そのフローは、Android ユーザーや iPhone ユーザーにとってもあまり意味がありません...そのため、別の UX フローを検討する方がよいかもしれません - ListView->Menu-> フローを引き続き使用できますが、" BACK" 構文は、ユーザーが BACK として理解します。
このタイプの UX を次のように実装すると思います。
起動時に、ListView/ListViewModel に通常どおり移動します。
メニュー、ボタン、またはハイパーリンクなどの何らかの方法を提示して、ユーザーが HomeView/HomeViewModel に移動できるようにしますが、「戻る」メタファーではなく「ホーム」または「メニュー」メタファーを使用してみてください。 WP7で。
ホームへのナビゲーションで、ナビゲーションに「ClearTop」のフラグを設定します。例:
public IMvxCommand GoHomeCommand
{
get
{
return new MvxRelayCommand(RequestNavigate<HomeViewModel>(true));
}
}
この「ClearTop」フラグは iOS と WP7 によって解釈され、ホームに到達するとナビゲーション バック スタックがクリアされます。ただし、悲しいことに、現在 Android で完全に機能するわけではありません。そのため、Android UI プロジェクトで何か賢いことを行う必要があります。たとえば、特別な開始 ListView/Activity に「NoHistory」フラグを使用する方法を見つけるなどです。
これを行う他の方法があるかどうかを聞くことに興味があります。