SwiftUI中如何将CKShare默认权限设置为只读?
如何将UICloudSharingController的默认共享权限设为仅查看(Read Only)
在iOS 16中,UICloudSharingController新增了initialPermission属性,专门用于指定共享面板打开时默认选中的权限选项。你只需在配置控制器时添加一行代码即可实现需求:
修改你的makeUIViewController方法,在设置availablePermissions后添加initialPermission的赋值:
func makeUIViewController(context: Context) -> UICloudSharingController { share[CKShare.SystemFieldKey.title] = recipe.rName let controller = UICloudSharingController(share: share, container: container) controller.modalPresentationStyle = .formSheet controller.delegate = context.coordinator controller.availablePermissions = [.allowReadWrite, .allowReadOnly] // 设置默认权限为仅查看 controller.initialPermission = .allowReadOnly return controller }
说明
- 该属性仅在iOS 16及以上版本可用,完全匹配你的使用环境(iOS 16.0),无需额外版本适配。
- 确保
initialPermission的值包含在你设置的availablePermissions数组中,否则不会生效。你已经配置了允许两种权限,因此直接设置.allowReadOnly即可。
内容的提问来源于stack exchange,提问作者JohnSF
相关产品推荐
相关产品推荐

