全屏幕侧滑返回方案

  • Apple 自 iOS7 之后增加了屏幕边缘右划返回上一级的交互,pop 到上一级页面的操作变的非常顺畅,从此,几乎很少的用户再使用返回按钮的方式返回了,现在的App中,如果没有实现侧滑返回的功能,对用户来说是极不方便的。

  • Apple自带的侧滑返回效果仅限于屏幕边缘左侧,以下就提供一种全屏幕侧滑返回的方案,使用极少的代码量来达到和系统相同的效果。

此段代码可加在父控制器内

id target = self.navigationController.interactivePopGestureRecognizer.delegate;
// 创建全屏滑动手势,调用系统自带滑动手势的target的action方法
UIPanGestureRecognizer *backPan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)]; //若实现,会奔溃
// 设置手势代理,拦截手势触发
backPan.delegate = self;
// 给控制器的view添加全屏滑动手势
[self.view addGestureRecognizer: backPan];
// 将系统自带的滑动手势禁用
self.navigationController.interactivePopGestureRecognizer.enabled = NO;

通过此代理控制是否需要返回手势

 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    // 只有非根控制器才有滑动返回功能,根控制器没有。
    // 判断导航控制器是否只有一个子控制器,如果只有一个子控制器,肯定是根控制器
    if (self.navigationController.viewControllers.count == 1) {
        // 表示用户在根控制器界面,就不需要触发滑动手势,
        return NO;
    }
    return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,196评论 4 61
  • 其实这么久我也有了一种感觉,那就是她想理你的时候,你说什么都合适,她不想理你,说啥都不行。有些道理和感觉真的得在生...
    夏韵阅读 202评论 0 0
  • 乱风吹舞着清晨,昏暗忙碌的人群在我眼中来来去去。我仿佛携着一种宿命,难以描述。 我确实在寻找某种结果,可这种结果我...
    采棠煨酒阅读 226评论 0 0
  • 周莹成为陕西首富那是后来的事情了! 周莹打小就是孤儿,和养父靠着各种杂耍和小骗术走南闯北的混日子。虽然不富裕,但也...
    凄雨落阅读 392评论 0 2