2016-06-13 2 views
0

J'essaye d'éteindre toutes les animations pour ouvrir et pousser des pages. J'ai fait un moteur de rendu personnalisé:Formulaires Xamarin: navigation sans animation sur iOS

[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); 
     } 
} 

La poussée fonctionne parfaitement et ne montre jamais d'animation. Le même rendu fonctionne aussi parfaitement sur Android. Mais OnPopViewAsync est toujours appelé après que le bruit est fait et donc l'animation est montrée. J'utilise Xamarin.Forms v2.3.0.46-pre3. Est-ce que quelqu'un d'autre a rencontré ce problème et a trouvé une solution de contournement?

Répondre

1

Deux remplacements dans votre CustomNavigationPageRenderer devrait le faire:

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

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