2017-06-17 8 views
0

私はMvvmCrossフレームワークでXamarin AndroidにメソッドOnBackPressedのカスタム処理を追加したいと思います。私はこのようなものを試してみた:OnBackPressed MvvmCrossのカスタム処理 - アプリケーションを終了しないでください

[Activity(Label = "Table", NoHistory = true)] 
public class Table: MvxActivity 
{ 
    protected override void OnCreate(Bundle bundle) 
    {   
      base.OnCreate(bundle); 
      SetContentView(Resource.Layout.View_Table);     
    } 

    public override void OnBackPressed() 
    { 
     //base.OnBackPressed(); 
     SetContentView(Resource.Layout.View_MainMenu); 
    } 
} 

とアプリがMainMenuViewに行ってきましたが、このビュー内(テーブルビューに向け)1つのボタンが無効になっていました。 私のような何かをしようとしてきた:MainMenuViewで

protected override void OnResume() 
{ 
     SetContentView(Resource.Layout.View_MainMenu); 
} 

が、それは動作しません。ビューの代わりにViewModelsにコードを追加する必要がありますか?レイアウトに何らかのイベントをバインドしますか?そのような振る舞いを処理することが可能な場合、その達成方法は?

+0

どうしたらうまくいかないのですか?あなたは物理的な戻るボタンまたはナビゲーションバーのものを使用していますか?意図された動作と問題が明確に定義されていない場合、あなたを助けることは本当に困難です。 – Demitrian

+0

私は物理的な戻るボタンを使用しています。このシナリオは単純です。私はTableViewに指示する一つのボタンでMainMenuViewを持っています。 TableViewでは、物理バックボタンを押した後にアプリケーションが閉じず、MainMenuViewまたは以前に表示された表示 –

答えて

1

このようなコードを書く場合は、MvvmCross機能を使用していません。

"History = true"を削除して、OnBackPressed()とOnResume()ハンドラを削除すると、MvvmCrossがMainMenuに戻るのを期待どおりに処理します。

MvvmCrossを使用している場合は、ビューを表示するのではなく、ViewModelsを使用する必要があります(少なくとも、従来のシナリオでは)。

+0

Okに移動するような動作を実装したいと思います。ありがとうございました。 –

+0

@BartoszJasiewicz Fine!あなたは単にこの答えを「受け入れられる」ものとすることができますか?ありがとうございました! – hugoterelle

+1

もちろんやりました! –

関連する問題