Xamarin.ios 在iOS+;中的MvvmCross中将导航更改为从下至上;沙马林

Xamarin.ios 在iOS+;中的MvvmCross中将导航更改为从下至上;沙马林,xamarin.ios,mvvmcross,Xamarin.ios,Mvvmcross,我使用MvvmCross和ShowViewModel在视图之间导航。它采用默认的导航行为,即从右->左滑动。我想要几个视图控制器从下到上滑动。有人能告诉我如何在MvvmCross中做到这一点吗。这些不是覆盖,而是常规视图控制器。您可以通过为导航控制器设置自定义代理来实现这一点。这可以通过在自定义ViewPresenter中重写以下方法来完成 protected override void OnMasterNavigationControllerCreated() { this.Maste

我使用MvvmCross和ShowViewModel在视图之间导航。它采用默认的导航行为,即从右->左滑动。我想要几个视图控制器从下到上滑动。有人能告诉我如何在MvvmCross中做到这一点吗。这些不是覆盖,而是常规视图控制器。

您可以通过为导航控制器设置自定义代理来实现这一点。这可以通过在自定义ViewPresenter中重写以下方法来完成

protected override void OnMasterNavigationControllerCreated()
{
    this.MasterNavigationController.WeakDelegate = new NavigationControllerDelegate();
}
在此代理中,您可以设置过渡,例如:

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
也是一个自定义类,继承自
UIViewControllerAnimatedTransitioning
。最后一步是在这个转换类中重写
AnimateTransition()
,您就完成了。

您可以通过为导航控制器设置自定义委托来实现这一点。这可以通过在自定义ViewPresenter中重写以下方法来完成

protected override void OnMasterNavigationControllerCreated()
{
    this.MasterNavigationController.WeakDelegate = new NavigationControllerDelegate();
}
在此代理中,您可以设置过渡,例如:

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
也是一个自定义类,继承自
UIViewControllerAnimatedTransitioning
。最后一步是在这个转换类中重写
AnimateTransition()
,您就完成了