Swift OC-全屏Pop手势


巧用iOS运行时特性,将原本系统中的左侧侧滑pop事件,添加到view中.源码欢迎star和关注。


全局pop的gif图.gif

1、Swift版本

//在自定义的UINavigationController里面获取到系统侧滑的pop事件,然后将事件添加到view上面
    override func viewDidLoad() {
        super.viewDidLoad()
        //        var count : UInt32 = 0
        //        let ivas = class_copyIvarList(UIGestureRecognizer.self, &count)!
        //        for i in 0..

2、OC版本


- (void)viewDidLoad {
    [super viewDidLoad];

    UInt32 count = 0;
    Ivar *ivars = class_copyIvarList(NSClassFromString(@"UIGestureRecognizer"), &count);
    for (int i = 0; i < count; i++){
        Ivar ivar = ivars[i];
        const char *ivarName = ivar_getName(ivar);
        NSString *ivarNameCode = [NSString stringWithUTF8String:ivarName];
        NSLog(@"%@",ivarNameCode);
    }
    free(ivars);

    NSArray *targets = [self.interactivePopGestureRecognizer valueForKey:@"_targets"];
    NSLog(@"%@",targets[0]);
    SEL sel = NSSelectorFromString(@"handleNavigationTransition:");
    UIPanGestureRecognizer *panGes = [[UIPanGestureRecognizer alloc] initWithTarget:[targets[0] valueForKey:@"target"] action:sel];
    [self.view addGestureRecognizer:panGes];

}


你可能感兴趣的:(Swift OC-全屏Pop手势)