So deaktivieren Sie die Zurückgeste in iOS 7 für nur eine Ansicht

Ich versuche, die Zurück-Geste für meinen View-Controller mithilfe des folgenden Codes zu deaktivieren.

ImFirstViewController.mIch setze den Delegierten voninteractivePopGestureRecognizer

- (void) viewWillLoad {

    // Other stuff..
    self.navigationController.interactivePopGestureRecognizer.delegate = self;
}

Und dann die Umsetzung der<UIGestureRecognizerDelegate> Methode und RückkehrNO.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

     return NO;
}

Und im Dealloc setze ich den Delegierten auf Null. (Ich habe irgendwo gelesen, dass man in iOS 7 die Delegierten manuell auf Null setzen muss.)

- (void)dealloc {

    self.navigationController.delegate = nil;
    self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}

Das funktioniert imFirstViewController. Aber wenn ich drückeSecondViewController dazu funktioniert die geste auch nicht. Wie kann ich die Geste nur in FirstViewController deaktivieren?

Auch wenn ich knalleFirstViewController zu gehenRootViewController und dann versuchen zu schiebenFirstViewController wieder bekomme ich den Objektfreigabefehler:

[FirstViewController gestureRecognizer:shouldReceiveTouch:]: message sent to deallocated instance 0x14ed0280

Warum muss ich etwas anderes tun, als die Delegierten auf Null zu setzen? Oder stelle ich es falsch ein?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage