一句程式碼恢復自定義leftBarButtonItem導致側滑失效

weixin_34249678發表於2016-09-26
iOS自帶左側側滑滑動功能,但是當你自定義leftBarButtonItem就會導致側滑失效,那麼如下程式碼寫於自定義導航欄控制器類中可恢復該功能:
- (void)viewDidLoad{
    [super viewDidLoad];
    if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.interactivePopGestureRecognizer.delegate = self;
    }
}
接著會出現一個bug,當你在根控制器的時候多次側滑的時候,就是發現卡死的情況,那麼要加上如下代理的程式碼,遵循代理UIGestureRecognizerDelegate.
//當手勢開始滑動作用:攔截手勢觸發
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
    //子控制器個數只剩下一個(這一個就是根控制器),手勢不可用
    BOOL open = self.childViewControllers.count != 1;
    return open;
}

相關文章