我们在之前这篇博文中探讨了如何在SwiftUI中禁止用户关闭sheet弹出视图:
SwiftUI如何禁止用户关闭sheet弹出的视图?
但遗憾的是,该方法从iOS 14.6开始失效。
如果在iOS 14.6中使用如上实现,会导致视图导航跳转时App挂起。
那么在iOS 14.6+之后的系统中我们如何完成同样功能呢?
在本博文中您将学到:
- 旧的解决方法有什么不足?
- 如何巧妙利用SwiftUI自身特性来解决问题
- 完整源代码
还等什么?让我们马上开始吧!
问题分析 1. 旧方法的不足原来的实现在代码结构上比较复杂,它采用自定义UIViewController将目标视图“包裹”起来,然后监听其中的弹出事件:
override