相信大家都有过在某个界面禁掉苹果手机自带的右滑返回手势,网上的帖子也是一大把一大把的,但是有个方法一直不起作用,到底为什么呢?
//禁止页面左侧滑动返回,注意,如果仅仅需要禁止此单个页面返回,还需要在viewWillDisapper下开放侧滑权限 // 禁用返回手势
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)])
{
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
这段代码放在viewWillAppear和viewDidLoad中都没用,因为手势必须作用在self.view上。在这两个方法里view根本还没有出现,所以怎么设置都没用。So,放在
- (void)viewDidAppear:(BOOL)animated
这个方法里,就可以用啦
要只想禁止一个界面的手势,需在在这个控制器界面消失方法重新开启
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated]; // 开启返回手势
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
}