iOS 从原生界面跳转自定义的 Web 界面后,左滑卡死

0x00 问题

项目中,一般都有自定义的一个 Web 界面,用于显示各种 H5 页面
H5 触发事件,跳转原生界面,也是常见需求

这次遇到的问题是:
H5 跳转到 原生 界面后,使用系统的 左滑返回 手势,导致了 界面卡死

通过在 Xcode 上查看当前界面的 视图层次结构
请添加图片描述
发现一个神奇的现象!
视图层次结构 中,最顶层 界面,其实已经是 H5 页面了!
但手机上显示的界面,却还是 原生 界面!?


0x01 猜测

有可能是 WKWebViewallowsBackForwardNavigationGestures 设置为 YES 导致的吗?与系统的左滑返回冲突了?

实际测试,不是!

因为设置
_WkWebView.allowsBackForwardNavigationGestures = YES;

已经把系统的左滑返回手势关闭了

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}


- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}

思来想去,想不明白…


0x02 恍然大悟

第二天,也就是今天
突然想到,是不是关闭系统左滑手势的时机不对呢?

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

view 将要 显示 的时候,就给它关闭了
都还没显示完呢

于是,改成了
view 已经 显示 的时候, 给它关闭了

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}

果然!
就是 时机 的问题!!
问题就这么解决了 😂 ~


0x03 小笔记应用

请添加图片描述


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪冷啊

你的鼓励是对我的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值