IOS侧滑,手势向右划问题

本文介绍了解决自定义UINavigationController时遇到的侧滑手势失灵问题。通过设置delegate及判断当前视图控制器数量来控制是否允许侧滑返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前项目里面自定义的UINavigationController,发现侧滑手势失灵了,查了好久发现了问题


系统的侧滑手势默认是和系统的NavigationController绑定在一起的,我们自定义的时候,侧滑手势就会失效


刚开始在自定义UINavigationController添加代码:

  1. __weak typeof (self) weakSelf = self;  
  2.     if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {  
  3.         self.interactivePopGestureRecognizer.delegate = weakSelf; 
  4.   }  


发现可以侧滑了,然而,问题又出现了,在主界面,同样会相应侧滑的手势,而且界面会错乱.


最终的解决办法:


-(id)initWithRootViewController:(UIViewController *)rootViewController

{

    self = [super initWithRootViewController:rootViewController];

       if (self)

            {

                    //从栈中取出来最底层的ViewController,关闭滑动返回

                    self.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;

            }

       return self;

}

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

{

    if (self.viewControllers.count == 1)//主界面的右滑返回手势关闭

    {

        return NO;

    }

    else

    {

        return YES;

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值