- @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
iOS自定义返回按钮,保留系统侧滑返回手势
最新推荐文章于 2023-02-15 13:24:18 发布