iOSiOS 解决方案

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

2017-04-12  本文已影响24人  TyroneTang

今天接到新的修改需求,要求指定的详情页面只有点击返回按钮才可返回,这样就必须关闭边缘返回,于是网上找了各种教程,总结下来基本上都是关掉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;

}];

}


上一篇 下一篇

猜你喜欢

热点阅读