1

私の質問のタイトルはかなり明確だと思います。詳細については、MvvmCross vNext を使用しています。v3 を使用する必要があることはわかっていますが、このバージョンでは毎週コミットが行われるため、まだ消極的です...本当の安定バージョンを待つことを好みます。

私は NetworkViewModel を使用してネットワーク表現を管理するケースにいます。また、サーバーへの接続ステータスを確認する役割もあります。接続がダウンしている場合、ViewModel は、ビューがサブスクライブされているログイン メッセージを投稿します。それを受け取ったら、モーダル ビューとして表示するダイアログを作成します (MonoTouch.Dialog としてですが、ViewModel にバインドされているため、NetworkViewModel の MvxTouchDialogViewController です) (MvxModalSupportTouchViewPresenter を使用しています)。同じ ViewModel でダイアログを作成できるようにするために、MvxUnconventionalViewAttribute を適用して、起動時に同じ ViewModel タイプで 2 つのビューを登録しないようにしました。次に、MvxShowViewModelRequest を使用して MvxTouchDialogViewController のインスタンスを作成し、プレゼンターの Show メソッドでそれを提示します。

私の問題は、この場合、ダイアログをアタッチするために NetworkViewModel の新しいインスタンスが作成されることです。または、モーダル ダイアログに同じ NetworkViewModel インスタンスを再利用したいと考えています。

Android では、現在の NetworkViewModel インスタンスで BindingInflate メソッドを使用し、ログイン ダイアログの xml レイアウト ファイルを指定することで、同等の動作が可能です。

iOS に相当するものはありますか?

ありがとう、

G.

4

1 に答える 1

1

常に新しいビューモデルを作成しないように mvx の動作をオーバーライドする場合は、ビューモデル ロケーターをオーバーライドして、1 つ以上のビューモデル タイプのカスタム ビューモデル ルックアップを提供できます。

詳細については、この質問/回答を参照してください - MvvmCross: ShowViewModel は常に新しいインスタンスを構築しますか?

于 2013-06-22T06:50:40.143 に答える