iOS Swift && Objective-C

iOS开发: 导航控制器 - 全屏右滑pop返回效果

2017-04-08  本文已影响230人  伯wen
#import <UIKit/UIKit.h>

@interface LTNavigationViewController : UINavigationController

@end

#import "LTNavigationViewController.h"

@interface LTNavigationViewController () <UIGestureRecognizerDelegate>

@end

@implementation LTNavigationViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIGestureRecognizer *gester = self.interactivePopGestureRecognizer;
    
    // 自定义手势
    // 手势加载谁身上, 手势执行谁的方法
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:gester.delegate action:NSSelectorFromString(@"handleNavigationTransition:")];
    // 其实就是控制器的容器视图
    [gester.view addGestureRecognizer:pan];
    
    gester.delaysTouchesBegan = YES;
    pan.delegate = self;
}

#pragma mark - < UIGestureRecognizerDelegate >

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    // 防止根视图控制器被pop, 导致程序假死
    return self.childViewControllers.count > 1;
}

@end
上一篇 下一篇

猜你喜欢

热点阅读