1

Android の MvvmCross にアプリをゆっくりと移行しています。すべてのアクティビティを ViewModel に変換したわけではありません。したがって、Mvvm 制御のアクティビティから通常のアクティビティに移動する必要があります。これを行うために、独自のプレゼンターを作成し、Show メソッドをインターセプトして、独自の StartActivity を実行しました。それはうまくいったようです。ただし、今度は別の方向に進み、通常のアクティビティを元の Mvvm 制御のアクティビティに戻す必要があります。CLEAR_TOP フラグを使用して ViewModel で StartActivity を実行しようとしましたが、エラーが発生しました。

"Null Extras seen on Intent when creating ViewModel - this should not happen - have you tried to navigate to an MvvmCross View directly?"

通常のアクティビティから元の Mvvm 制御のアクティビティに戻るにはどうすればよいですか?

4

2 に答える 2

2

単純...

標準の Android から戻るには、を使用して閉じるように指示Activityするだけです。ActivityFinish()


しかし、それを超えて...

代わりに MvvmCross に進みたい場合は、ViewMvvmCross の内部について少し知る必要があります。特に、MvvmCross ナビゲーションが概念的に 間ViewModelsではなくActivitiesPagesまたは間でどのように発生するかについて知っておく必要がありますUIViewControllers

新しい に進みたい場合は、シングルトンViewModelを使用してこれを行うことができます。これを行う方法は、mvvmcross の非ビュー/ビューモデルからのビューの表示に示されています。IMvxViewDispatcher

後で現在の から戻りたい場合は、デフォルトで Androidでは に、Touchでは に、WpDev では にViewModelマップされます。Close(this)ViewModelFinish()PopViewControllerGoBack()

于 2013-05-23T16:30:25.897 に答える