SwiftUI禁止用户关闭sheet弹出视图在iOS14.6+失效的巧妙解决

Posted 大熊猫侯佩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI禁止用户关闭sheet弹出视图在iOS14.6+失效的巧妙解决相关的知识,希望对你有一定的参考价值。



问题现象

我们在之前这篇博文中探讨了如何在SwiftUI中禁止用户关闭sheet弹出视图:

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)的新解决方案

iOS 16 中 SwiftUI 防止弹出的 sheet 视图被下滑关闭(dismiss)的新解决方案

iOS 16 中 SwiftUI 防止弹出的 sheet 视图被下滑关闭(dismiss)的新解决方案