2016-08-31 17 views
0

MvvmCrossを使用していて、ShowViewModelを使用してビュー間を移動しています。デフォルトのナビゲーション動作、つまり右から左へスライドします。私はいくつかのビューコントローラを下から上にスライドさせたい。誰かがMvvmCrossでこれをどうやってできるのか教えてもらえますか?これらはオーバーレイではなく、通常のView Controllerです。iOS + XamarinのMvvmCrossのナビゲーションを下から上に変更する

答えて

0

これは、ナビゲーションコントローラのカスタムデリゲートを設定することで実現できます。これは、例えば、あなたのトランジションを設定することができます。:

public class NavigationControllerDelegate : UINavigationControllerDelegate 
{ 
    public override IUIViewControllerAnimatedTransitioning GetAnimationControllerForOperation(UINavigationController navigationController, UINavigationControllerOperation operation, UIViewController fromViewController, UIViewController toViewController) 
    { 
     if (operation == UINavigationControllerOperation.Push) 
     { 
      if (fromViewController is MenuViewController) 
      { 
       return new BottomToTopTransition(); 
      } 

      ... 

     } 
    } 
} 

BottomToTopTransitionこのデリゲート内でカスタムViewPresenter

protected override void OnMasterNavigationControllerCreated() 
{ 
    this.MasterNavigationController.WeakDelegate = new NavigationControllerDelegate(); 
} 

でオーバーライド以下の方法により行うことができますまた、カスタムクラスであるとUIViewControllerAnimatedTransitioningから継承します。最後のステップはこのトランジションクラスのAnimateTransition()をオーバーライドすることです。

関連する問題