Como desativar o gesto de retorno no iOS 7 para apenas uma visualização
Eu estou tentando desativar o gesto de volta para o meu controlador de exibição usando o seguinte conjunto de código.
EmFirstViewController.m
, Estou definindo o delegado deinteractivePopGestureRecognizer
- (void) viewWillLoad {
// Other stuff..
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
E então implementando o<UIGestureRecognizerDelegate>
método e retornandoNO
.
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
return NO;
}
E no dealloc estou definindo o delegado para nulo. (Eu li em algum lugar que no iOS 7, você tem que definir manualmente os delegados a zero)
- (void)dealloc {
self.navigationController.delegate = nil;
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
Isso funciona noFirstViewController
. Mas quando eu empurroSecondViewController
para isso, o gesto também não funciona. Como posso desativar o gesto apenas no FirstViewController?
Também quando eu popFirstViewController
ir paraRootViewController
e depois tentar empurrarFirstViewController
novamente, recebo o erro de desalocamento de objeto:
[FirstViewController gestureRecognizer:shouldReceiveTouch:]: message sent to deallocated instance 0x14ed0280
Por que mais eu preciso fazer diferente de definir os delegados para zero? Ou eu estou colocando no lugar errado?