本文完全參考:http://www.jianshu.com/p/d39f7d22db6c
項目需要實作左劃pop到上一級控制器功能,然後參考了諸位大牛的技術部落格,提煉了使用步驟,僅限于使用。
1.繼承NavigationController,自定義一個導航控制器,遵守協定 UIGestureRecognizerDelegate
2.viewDidLaod中添加如下代碼
self.interactivePopGestureRecognizer.enabled = NO;//關閉iOS7系統 自帶左側響應手勢
id target = self.interactivePopGestureRecognizer.delegate;//拿到執行左側響應手勢的對象
SEL handleTransition = NSSelectorFromString(@"handleNavigationTransition:");//通過列印得到左側手勢響應後執行的方法是handleNavigationTransition,通過kvc的方式得到該方法
_pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:handleTransition];
_pan.delegate = self;//UIGestureRecognizerDelegate
[self.view addGestureRecognizer:_pan];//添加手勢
3.添加方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return self.viewControllers.count != 1 && ![[self valueForKey:@"_isTransitioning"] boolValue];
}