Cómo deshabilitar el gesto de retroceso en iOS 7 para una sola vista
Estoy intentando deshabilitar el gesto Atrás de mi controlador de vista utilizando el siguiente conjunto de código.
EnFirstViewController.m
, Estoy configurando el delegado deinteractivePopGestureRecognizer
- (void) viewWillLoad {
// Other stuff..
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
Y luego implementando el<UIGestureRecognizerDelegate>
método y regresoNO
.
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
return NO;
}
Y en dealloc pongo el delegado a nil. (He leído en alguna parte que en iOS 7, debe configurar manualmente los delegados en nulo)
- (void)dealloc {
self.navigationController.delegate = nil;
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
Esto funciona en elFirstViewController
. Pero cuando empujoSecondViewController
A esto, el gesto tampoco funciona en eso. ¿Cómo puedo deshabilitar el gesto solo en FirstViewController?
También cuando hago popFirstViewController
ir aRootViewController
y luego tratar de empujarFirstViewController
de nuevo, me sale el objeto desasignado error:
[FirstViewController gestureRecognizer:shouldReceiveTouch:]: message sent to deallocated instance 0x14ed0280
¿Por qué más necesito hacer otra cosa que no sea establecer a los delegados en cero? ¿O lo estoy poniendo en el lugar equivocado?