Jak wyłączyć gest cofania w iOS 7 tylko dla jednego widoku

Próbuję wyłączyć gest cofania dla mojego kontrolera widoku za pomocą następującego zestawu kodu.

WFirstViewController.m, Ustawiam delegatainteractivePopGestureRecognizer

- (void) viewWillLoad {

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

A następnie wdrożenie<UIGestureRecognizerDelegate> metoda i powrótNO.

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

     return NO;
}

W dealloc ustawiam delegata na zero. (Czytałem gdzieś, że w iOS 7, musisz ręcznie ustawić delegatów na zero)

- (void)dealloc {

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

To działa wFirstViewController. Ale kiedy pchamSecondViewController do tego gest nie działa na tym. Jak mogę wyłączyć ten gest tylko w FirstViewController?

Także kiedy popFirstViewController iść doRootViewController a następnie spróbuj nacisnąćFirstViewController ponownie otrzymuję błąd zwolnienia obiektu:

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

Dlaczego jeszcze muszę zrobić coś innego niż ustawienie delegatów na zero? A może ustawiam go w niewłaściwym miejscu?

questionAnswers(6)

yourAnswerToTheQuestion