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?

questionAnswers(6)

yourAnswerToTheQuestion