Как отключить жест назад в 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
Почему еще мне нужно сделать что-то кроме установки делегатов на ноль? Или я устанавливаю это в неправильном месте?