2017-09-21 2 views
1

ViewPresenterを使用してバックスタックをクリアします。以下のコードはそれを達成するために使用され、うまくいきました。 MvvmCross 5.2以降、ショー(インテント)は存在しなくなりました。代わりに何を使うべきですか?MvvmCrossショー(インテント)はもう利用できません

public class ViewPresenter : MvxAndroidViewPresenter 
{ 
    public override void Show(MvxViewModelRequest request) 
    { 
     if (request != null && request.PresentationValues != null) 
     { 
      if (request.PresentationValues.ContainsKey(ShowViewParameters.ClearBackstack.ToString())) 
      { 
       // Get intent from request and set flags to clear backstack. 
       var intent = base.CreateIntentForRequest(request); 
       intent.SetFlags(ActivityFlags.ClearTask | ActivityFlags.NewTask); 

       base.Show(intent); 
       return; 
      } 
     } 

     base.Show(request); 
    } 
} 

答えて

1

これは私が今プログラムたもので、それが正常に動作します:

public class ViewPresenter : MvxAndroidViewPresenter 
{ 
    public ViewPresenter(IEnumerable<Assembly> androidViewAssemblies) : base(androidViewAssemblies) 
    { 
    } 

    public override void Show(MvxViewModelRequest request) 
    { 
     var intent = base.CreateIntentForRequest(request); 

     if (request != null && request.PresentationValues != null) 
     { 
      if (request.PresentationValues.ContainsKey(ShowViewParameters.ClearBackstack.ToString())) 
      { 
       // Get intent from request and set flags to clear backstack. 
       intent.SetFlags(ActivityFlags.ClearTask | ActivityFlags.NewTask); 
      } 
     } 

     ShowIntent(intent); 
    } 
} 
+0

これは、あなたがMVX 5.2のすべての新機能を使用することはできません。内側のifとreturnの中でのみ 'ShowIntent'を使用してください。その後、base.Show() – Martijn00

+0

ShowIntent()の代わりにShow()を使用する理由を詳しく説明できますか? –

+0

私が言ったように、新しい機能を使用することができます:https://www.mvvmcross.com/mvvmcross-52-release/#a-new-default-android-presenter-1934 あなたはまだあなたのサイトにShowIntentを使用できますもしあなたのコードが動作しているなら、内部コード。 – Martijn00

関連する問題