關於ios7 UINavigationController.interactivePopGestureRecognizer手勢集成

由於公司業務需求,結合網上的資料整理了一下。

spa

若是自定義過navbar的leftbarbutton 或者backbarbutton 原生interactivePopGestureRecognizer默認是關閉的。
隨着手機屏幕愈來愈大,側滑現在已成主流。所以知足自定義的返回鍵的時候知足側滑是必不可少的。

繼承

1.在navigationController  開啓navigationController的interactivePopGestureRecognizer(建議自定義一個nav, 這個在哪無所謂,關鍵是要把當前的nav手勢打開)事件

- (void)viewDidLoadio

{class

    __weak NavigationController *weakSelf = self;select

 

    if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)])bug

    {im

        

        self.interactivePopGestureRecognizer.delegate = (id)weakSelf;animate

        

        self.delegate = (id)weakSelf;view

    }

}

2.basevc中(建議自定義一個全部的vc都繼承的baseVC)

- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    UIViewController * rootvc = self.navigationController.viewControllers[0];

    if ([rootvc isEqual:self]) { //這裏必需要把棧低的vc的interactivePopGestureRecognizer掛掉  否則會有些意想不到的bug

        self.navigationController.interactivePopGestureRecognizer.enabled = NO;

    }else{

        self.navigationController.interactivePopGestureRecognizer.enabled = YES;

    }

}

 

補充, self.navigationController.interactivePopGestureRecognizer能夠像其餘手勢同樣添加事件,可是這是個危險的操做,

由於在你風騷的側滑時,self的class會在兩個vc中不停的跳轉  簡直讓你抓毛。所以並不推薦,  若是有哪位大大解決了還請吱一聲~

相關文章
相關標籤/搜索