これは、ナビゲーションコントローラのカスタムデリゲートを設定することで実現できます。これは、例えば、あなたのトランジションを設定することができます。:
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()
をオーバーライドすることです。