SwiftUI禁止用户关闭sheet弹出视图在iOS14.6+失效的巧妙解决
Posted 大熊猫侯佩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI禁止用户关闭sheet弹出视图在iOS14.6+失效的巧妙解决相关的知识,希望对你有一定的参考价值。
问题现象
我们在之前这篇博文中探讨了如何在SwiftUI中禁止用户关闭sheet弹出视图:
但遗憾的是,该方法从ios 14.6开始失效。
如果在iOS 14.6中使用如上实现,会导致视图导航跳转时App挂起。
那么在iOS 14.6+之后的系统中我们如何完成同样功能呢?
在本博文中您将学到:
- 旧的解决方法有什么不足?
- 如何巧妙利用SwiftUI自身特性来解决问题
- 完整源代码
还等什么?让我们马上开始吧!
问题分析
1. 旧方法的不足
原来的实现在代码结构上比较复杂,它采用自定义UIViewController将目标视图“包裹”起来,然后监听其中的弹出事件:
override
以上是关于SwiftUI禁止用户关闭sheet弹出视图在iOS14.6+失效的巧妙解决的主要内容,如果未能解决你的问题,请参考以下文章
iOS 16 修改第三方库实现监听 SwiftUI 中 sheet 弹出视图的下滑关闭动作
iOS 16 修改第三方库实现监听 SwiftUI 中 sheet 弹出视图的下滑关闭动作
iOS 16 修改第三方库实现监听 SwiftUI 中 sheet 弹出视图的下滑关闭动作
iOS 16 中 SwiftUI 防止弹出的 sheet 视图被下滑关闭(dismiss)的新解决方案