右滑手势使用不当会造成的严重bug

右滑手势

  1. 基本原理:
    1. interactivePopGestureRecognizer.enabled在正常情况下控制手势是否可用,默认是可用状态
    2. 如果重写了返回按钮, 需要设置interactivePopGestureRecognizer.delegate才能重新启动手势功能
  2. 调用时机:
    1. 改变手势设置和恢复手势设置应该在viewDidAppear: 和viewWillDisappear: 里成对调用
    2. 其他: viewWillAppear:等函数里应该调用super的对应函数
  3. 现有问题
    1. 当在viewWillAppear里设置interactivePopGestureRecognizer.enabled = NO时,右滑退出时会卡死界面。
    2. 如果interactivePopGestureRecognizer.delegate = nil 后没有恢复成原值, 就会打开一些原本不需要返回手势的页面
  4. 修改
    1. 在基类HDFBaseViewController里统一处理了自定义返回按钮的返回手势的情况:调forceEnablePopGesture函数可以强制启用返回手势。
  5. 第三方库: MLTransition

NavigationBar的展现

  1. [self.navigationController setNavigationBarHidden:YESorNO animated:YESorNO];
  2. 现有问题: 如果在viewWillAppear/viewWillDisappear里调用[self.navigationController setNavigationBarHidden:YES animated:NO], 返回手势进行一半时取消, 然后再多次返回后会出现导航栏错乱的情况.
  3. 导航乱错乱不是出现在当前页面的当前操作, 而是会出现在几个之后的页面, 很难查找原因
  4. 修改: 
    1. 修改animated的值, 改成 [self.navigationController setNavigationBarHidden:YESorNO animated:animated]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值