iOS禁用右滑返回的两种方法

本文实例为大家分享了iOS禁用右滑返回的具体代码,供大家参考,具体内容如下

方式一:

前提:如果使用的自定义UINavigationController基类,请不要在此基类里写相关的手势操作方法。

代码如下:

?
1
2
3
4
5
6
7
8
9
-( void )viewDidAppear:( BOOL )animated{
   if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
     self.navigationController.interactivePopGestureRecognizer.enabled = NO;
   }
}
    
-( void )viewWillDisappear:( BOOL )animated{
   self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}

方式二:

流程:先设置代理---->重写手势操作方法

?
1
2
3
4
5
6
7
8
-( void )viewDidAppear:( BOOL )animated{
   self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
    
- ( BOOL )gestureRecognizerShouldBegin:(UIGestureRecognizer
                    *)gestureRecognizer{
   return NO; //YES:允许右滑返回 NO:禁止右滑返回
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持主机吧

### iOS返回手势实现机制 在 iOS 应用开发中,左返回手势是一种常见的导航交互方式。该手势通常用于从当前视图控制器返回到前一个视图控制器。其实现依赖于 `UINavigationController` 提供的支持。 #### 导航控制器内置支持 当应用使用 `UINavigationController` 来管理多个视图控制器之间的转换时,默认情况下已经集成了左侧边缘的动手势来处理返回操作[^1]。这意味着开发者无需额外编写代码即可启用此功能;然而,对于特定场景下的定制化需求,则可能需要进一步调整或扩展默认行为。 #### 自定义手势识别器集成 如果项目中有特殊的布局结构(例如包含水平分页滚动),可能会导致标准的返回手势被其他手势拦截而失效。这时可以通过重写 gestureRecognizerShouldBegin 或者采用 shouldRecognizeSimultaneouslyWithGestureRecognizer 方法使得两者能够同时工作[^2]: ```objc - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; } ``` 上述 Objective-C 代码片段展示了如何允许两个不同的手势识别器在同一时间点内共同作用,从而解决了由于优先级差异造成的冲突问题。 #### 边缘动手势特性 值得注意的是,iOS 系统中的返回实际上是由专门针对屏幕边缘设计的手势所驱动——即所谓的“边缘手势”。这种特殊类型的触摸输入具有较高的灵敏度,并且其触发范围限定于设备显示屏的一侧边界附近[^3]。因此,在某些复杂界面下适当配置相关参数可以有效提升用户体验并减少误触情况的发生。 #### 视频播放或其他特殊情况考虑 另外需要注意的是,在一些特殊应用场景里(比如视频全屏模式),为了防止意外退出造成不良影响,官方建议暂时禁用手势响应直到恢复正常状态为止。这同样适用于任何可能导致数据丢失的操作流程之中[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值