我正在尝试使用以下代码集禁用我的视图控制器的后退手势。
在FirstViewController.m
,我正在设置代表interactivePopGestureRecognizer
- (void) viewWillLoad {
// Other stuff..
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
然后实现<UIGestureRecognizerDelegate>
方法并返回NO
。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
return NO;
}
在 dealloc 中,我将委托设置为 nil。(我在某处读过,在 iOS 7 中,您必须手动将代表设置为 nil)
- (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
除了将代表设置为零之外,我还需要做什么?还是我把它放在了错误的地方?