iOS自定义返回按钮,保留系统侧滑返回手势
2018-01-19 21:29
666 查看
@interface ViewController ()
@end@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad]; // 自定义返回按钮
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44, 44)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button];
}
- (void)back:(UIButton *)button {
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (self.navigationController.viewControllers.count > 1) {
// 记录系统返回手势的代理
_delegate = self.navigationController.interactivePopGestureRecognizer.delegate;
// 设置系统返回手势的代理为当前控制器
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// 设置系统返回手势的代理为我们刚进入控制器的时候记录的系统的返回手势代理
self.navigationController.interactivePopGestureRecognizer.delegate = _delegate;
}
#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return self.navigationController.childViewControllers.count > 1;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return self.navigationController.viewControllers.count > 1;
}
@end
@end@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad]; // 自定义返回按钮
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44, 44)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button];
}
- (void)back:(UIButton *)button {
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (self.navigationController.viewControllers.count > 1) {
// 记录系统返回手势的代理
_delegate = self.navigationController.interactivePopGestureRecognizer.delegate;
// 设置系统返回手势的代理为当前控制器
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// 设置系统返回手势的代理为我们刚进入控制器的时候记录的系统的返回手势代理
self.navigationController.interactivePopGestureRecognizer.delegate = _delegate;
}
#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return self.navigationController.childViewControllers.count > 1;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return self.navigationController.viewControllers.count > 1;
}
@end
相关文章推荐
- IOS-自定义返回按钮,保留系统滑动返回
- iOS自定义tabBar手势侧滑返回(仿系统)
- iOS 自定义返回按钮,保留系统滑动返回
- iOS 自定义返回按钮,保留系统滑动返回
- iOS “自定义返回按钮”与“系统侧滑”的组合使用
- iOS 自定义返回按钮,保留系统滑动返回
- iOS 自定义返回按钮保留系统滑动返回功能
- iOS “自定义返回按钮”与“系统侧滑”的组合使用
- iOS手势(滑动)返回的实现(自定义返回按钮)
- IOS开发OC 如何将导航栏左侧系统自动生成的返回按钮的文字去掉,只保留小于号"<"图案
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- iOS自定义返回按钮(不影响返回手势)
- iOS 开发 系统返回按钮隐藏文字、自定义文字
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- iOS开发之边缘手势返回(解决自定义返回按钮手势无效)
- ios 自定义返回按钮侧滑失效完美解决方案
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- ios 自定义返回按钮时,如何添加手势返回
- iOS 自定义返回按钮又不影响手势