美文网首页iOSiOS 解决方案
iOS 禁止单个页面的边缘返回功能的实现

iOS 禁止单个页面的边缘返回功能的实现

作者: TyroneTang | 来源:发表于2017-04-12 13:50 被阅读24次

今天接到新的修改需求,要求指定的详情页面只有点击返回按钮才可返回,这样就必须关闭边缘返回,于是网上找了各种教程,总结下来基本上都是关掉navigation的interactivePopGestureRecognizer,关掉后测试发现达不到效果。无奈之下,自己尝试通过断点查看navigation上的gestureRecognizer发现有不止一个gestureRecognizer存在而且都是和view的transaction有关。既然关一个不成,索性使用遍历数组的方式将其全部关闭了,结果终于成功,现在献上代码,希望对大家有帮助!


//关闭响应

-(void)viewDidAppear:(BOOL)animated{

[super viewDidAppear:animated];

NSArray *navtureRecognizers = self.navigationController.view.gestureRecognizers;

[navtureRecognizers enumerateObjectsUsingBlock:^(UIGestureRecognizer *obj, NSUInteger idx, BOOL * _Nonnull stop) {

obj.enabled = NO;

}];

}

//打开响应

- (void)viewDidDisappear:(BOOL)animated {

[super viewDidDisappear:animated];

NSArray *navtureRecognizers = self.navigationController.view.gestureRecognizers;

[navtureRecognizers enumerateObjectsUsingBlock:^(UIGestureRecognizer *obj, NSUInteger idx, BOOL * _Nonnull stop) {

obj.enabled = YES;

}];

}


相关文章

网友评论

    本文标题:iOS 禁止单个页面的边缘返回功能的实现

    本文链接:https://www.haomeiwen.com/subject/tlrmattx.html