iOS之侧滑返回无需第三方,只需在自己的BaseNavController添加大概20行代码即可
点击上方“iOS开发”,选择“置顶公众号”
关键时刻,第一时间送达!
闲时多研究研究代码或者多多封装一些常用的类,对自己有利而无害,作为一个程序员,我觉得只要多看,多敲,多琢磨,慢慢滴你也就会成为大牛。
效果图
实现步骤:
1、viewDidLoad需要做的事情
self.delegate = self;
__weak typeof(self) weakSelf = self;
if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.interactivePopGestureRecognizer.delegate = weakSelf;
}
2、实现UIGestureRecognizerDelegate代理中的方法
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
if (self.navigationController.viewControllers.count == 1) {
return NO;
}else{
return YES;
}
}
3、实现UINavigationControllerDelegate代理中的方法
1.实现didShowViewController方法
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
if ([navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
navigationController.interactivePopGestureRecognizer.enabled = YES;
}
//使navigationcontroller中第一个控制器不响应右滑pop手势
if (navigationController.viewControllers.count == 1) {
navigationController.interactivePopGestureRecognizer.enabled = NO;
navigationController.interactivePopGestureRecognizer.delegate = nil;
}
}
2.此方法中拦截所有push 进来的控制器
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.interactivePopGestureRecognizer.enabled = NO;
}
[super pushViewController:viewController animated:animated];
}
作者:flowerflower
链接:http://www.jianshu.com/p/5e7ac309cff4
iOS开发整理发布,转载请联系作者授权
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 一图读懂新成立的信息支援部队 4962645
- 2 多名中国移动用户未欠费被迫停机 4904919
- 3 中央财经大学多名学生吐槽800米体测 4868392
- 4 乡村产业发展态势良好 4725294
- 5 伊朗外长:“袭击”伊朗武器像玩具 4691815
- 6 女孩桥边哭泣 留下手机后跳桥 4549184
- 7 新人结婚当天邻居播放哀乐 4459918
- 8 广东清远特大暴雨 高铁车厢内进水 4393006
- 9 淄博赵大爷辟谣收徒弟要收钱 4253078
- 10 哈尔滨啤酒检出毒素 多家平台已下架 4101685