2016-08-03 42 views
0

ich einen benutzerdefinierten Navigations-Renderer, die Balken auf Swipe verstecken sollte:Xamarin Forms: Unbekannter Selektor an Instanz gesendet

[assembly: ExportRenderer(typeof(CNavigationPage), typeof(CNavigationRenderer))] 
namespace TabbedPageDemo.iOS 
{ 
    class CNavigationRenderer : NavigationRenderer 
    { 
     protected override void OnElementChanged(VisualElementChangedEventArgs e) 
     { 
      base.OnElementChanged(e); 

      if (e.NewElement != null) 
      { 
       this.HidesBarsOnSwipe = true; 
       this.BarHideOnSwipeGestureRecognizer.AddTarget(this, new Selector("swipeGesture:")); 
      } 
     } 
    } 
} 

In PCL wird Mainpage auf eine Tabbed-Seite eingestellt. Jede Registerkarte ist eine Instanz von CNavigationPage. Als ich das Projekt ausführen, erhalte ich:

Objective-C e 
xception thrown. Name: NSInvalidArgumentException Reason: -[TabbedPageDemo_iOS_CNavigationRenderer swipeGesture:]: unrecognized selector sent to instance 

Jeder weiß, warum swipeGesture nicht erkannt wird?

+0

Haben Sie eine registrierte "swipeGesture:" Methode? – SushiHangover

+0

Ich denke nicht? Kannst du mir sagen, wie ich es registriere? – Mark13426

+0

Sehen Sie sich diese Antwort an, um zu erfahren, wie Sie Ihre Methode über das Attribut 'Export' registrieren können: http://stackoverflow.com/a/27254298/4984832 – SushiHangover

Antwort

0

Sie sehen unten in Ihrer IDE. Ansicht -> Pad -> Toolbox, In Toolbox, Eigenschaften-> Ereignisse .. sollte ein anderes Controller-Ereignis auf demselben Steuerelement sein, das Sie nicht gemacht haben.