美文网首页
iOS全屏手势返回

iOS全屏手势返回

作者: oldDevil | 来源:发表于2019-01-20 23:38 被阅读11次

创建一个UINavigationViewController的子类,在子类viewDidLoad方法中写入下面代码,在使用导航控制器的时候使用这个子类就可以了。

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIGestureRecognizer *sysges = self.interactivePopGestureRecognizer;
    sysges.enabled = NO;
    UIView *sysView = sysges.view;
    
    id target = [[sysges valueForKey:@"_targets"] firstObject];
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]init];
    SEL action = NSSelectorFromString(@"handleNavigationTransition:");
    [pan addTarget:[target valueForKey:@"_target"] action:action];
    [sysView addGestureRecognizer:pan];
}

原理就是拿到系统的返回手势,拿到系统手势作用的View,用runtime找到我们想要的targetaction,然后自定义一个pan手势,把系统的target和action填进去就ok了。
至于为什么我们拿到系统的东西重新弄个手势就可以全屏了,就是因为系统的手势修改了手势的作用范围。


找target和action如下:

    unsigned int count;
    Ivar *ivar = class_copyIvarList([UIGestureRecognizer class], &count);
    for (int i = 0; i < count; i++) {
       NSLog(@"%s", ivar_getName(ivar[i]));
    }

相关文章

  • iOS 全屏返回

    iOS 全屏返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS 手势返回

    iOS 手势返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS 全屏手势返回

    BBGestureBack BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势...

  • iOS 右滑返回

    BBGestureBack BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势...

  • BBGestureBack 手势返回

    BBGestureBack BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势...

  • iOS 右滑返回

    iOS 右滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS 侧滑返回

    iOS 侧滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS 侧滑返回详解

    iOS 侧滑返回详解 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流A...

  • iOS 侧滑返回详解

    iOS 侧滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • 一个丝滑的全屏滑动返回手势

    原文地址:一个丝滑的全屏滑动返回手势 全屏返回手势 自 iOS7 之后,Apple 增加了屏幕边缘右划返回交互的支...

网友评论

      本文标题:iOS全屏手势返回

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