Frage

Ich versuche, meine Ansicht-Controller zu bekommen klaut in der UINavigationBar zu erkennen, die automatisch durch meine App angezeigt wird, aber es weigert klaut zu erkennen. Gibt es eine Möglichkeit, es zu tun?

War es hilfreich?

Lösung

Angenommen, Sie klaut nach links in Ihrer Navigationsleiste erkennen möchten, können Sie etwas tun könnte beim Erstellen der Navigationscontroller :

   UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewSwipedLeft:)];
   [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
   [self.navigationController.navigationBar addGestureRecognizer:swipeLeft];

und erstellen dann eine Methode, wie man darunter behandeln:

-(void) didSwipedLeft: (UISwipeGestureRecognizer *) gesture {

  if (gesture.state != UIGestureRecognizerStateEnded) {
      return;
  }

  //do something    
}

OBS: Wie Sie Navigationscontroller eine Klasse, die mehrere Schritte Sie Applikations-Lebenszyklus am Leben bleiben, ist es wichtig, die Aufmerksamkeit auf das bezahlen und die Gestenerkenner nur hinzufügen, wenn Sie die Navigationssteuerung erstellen (was bedeutet, nur hinzufügen es einmal), so dass Sie halten nicht Gesten Erkenner übereinander stapeln, wird wich nicht nur zu einem Speicherverlust, sondern auch könnte Ihre Methode didSwipedLeft machen mehr als einmal aufgerufen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top