Как отключить жест назад в iOS 7 только для одного просмотра

Я пытаюсь отключить задний жест для моего контроллера представления, используя следующий набор кода.

ВFirstViewController.mЯ устанавливаю делегатinteractivePopGestureRecognizer

- (void) viewWillLoad {

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

И затем реализация<UIGestureRecognizerDelegate> метод и возвращениеNO.

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

     return NO;
}

И в dealloc я устанавливаю делегата на ноль. (Я где-то читал, что в iOS 7 вы должны вручную установить делегатов на ноль)

- (void)dealloc {

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

Это работает вFirstViewController, Но когда я нажимаюSecondViewController на это жест тоже не работает. Как я могу отключить жест только в FirstViewController?

Также, когда я попFirstViewController идтиRootViewController а затем попробуйте нажатьFirstViewController снова я получаю объект освобождается ошибка:

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

Почему еще мне нужно сделать что-то кроме установки делегатов на ноль? Или я устанавливаю это в неправильном месте?

Ответы на вопрос(6)

Ваш ответ на вопрос