想着要实现页面出现之后不进行操作无法返回的效果,没想到隐藏了返回按钮之后发现用手势还是可以返回,到网上找了很久,发现大致的套路都是修改navigationController
的interactivePopGestureRecognizer.enabled
的属性为NO
,有的说在跳转前的页面设置,有的说在跳转后的页面设置,当是我试了一下发现都没什么用。
虽然还有监听手势操作的方案,但是感觉实现起来有点麻烦,最后在网上找到了一个方案,试了一下把所有的手势禁用,终于解决了问题。
实现代码如下
-(void)popGestureChange:(UIViewController *)vc enable:(BOOL)enable{
if ([vc.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
//遍历所有的手势
for (UIGestureRecognizer *popGesture in vc.navigationController.interactivePopGestureRecognizer.view.gestureRecognizers) {
popGesture.enabled = enable;
}
}
}
这个函数的使用可以在viewDidAppear
调用,调用完之后记得在viewDidDisappear
恢复原先的设置
来源:CSDN
作者:-madongyu-
链接:https://blog.csdn.net/madonghyu/article/details/87948594