Xamarin表单:iOS

时间:2016-06-13 14:13:41

标签: ios animation xamarin xamarin.forms renderer

我试图关闭弹出和推送页面的所有动画。我制作了一个自定义渲染器:

[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationPageRenderer))]

namespace MyNamespace
{
    public class CustomNavigationPageRenderer : NavigationRenderer
    {
        protected override Task<bool> OnPushAsync(Page view, bool animated)
        {
            return base.OnPushAsync(view, false);
        }

        protected override Task<bool> OnPopViewAsync(Page page, bool animated)
        {
            return base.OnPopViewAsync(page, false);
        }

        protected override Task<bool> OnPopToRoot(Page page, bool animated)
        {
            return base.OnPopToRoot(page, false);
        }
}

推动工作完美,从不显示动画。同样的渲染器也适用于Android。但是在弹出之后总是会调用OnPopViewAsync,因此会显示动画。我使用的是Xamarin.Forms v2.3.0.46-pre3。有没有其他人遇到这个问题并找到了解决方法?

1 个答案:

答案 0 :(得分:2)

CustomNavigationPageRenderer中的另外两个覆盖应该这样做:

public override UIViewController PopViewController(bool animated)
{
    return base.PopViewController(false);
}

public override UIViewController[] PopToRootViewController(bool animated)
{
    return base.PopToRootViewController(false);
}