由於公司業務需求,結合網上的資料整理了一下。
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中不停的跳轉 簡直讓你抓毛。所以並不推薦, 若是有哪位大大解決了還請吱一聲~