gpt4 book ai didi

SwiftUI 导出或共享文件

转载 作者:行者123 更新时间:2023-11-28 05:40:50 27 4
gpt4 key购买 nike

我想知道是否有通过 SwiftUI 导出或共享文件的好方法。似乎没有办法包装 UIActivityViewController 并直接呈现它。我已经使用 UIViewControllerRepresentable 来包装 UIActivityViewController,如果我在 SwiftUI 模态中显示它,它就会崩溃。

我能够创建一个通用的 UIViewController,然后从那里调用一个呈现 UIActivityViewController 的方法,但这需要大量包装。

如果我们想使用 SwiftUI 从 Mac 共享,有没有办法包装 NSSharingServicePicker?

无论如何,如果有人能举例说明他们是如何做到这一点的,我们将不胜感激。

最佳答案

你可以在任何地方定义这个函数(最好是在全局范围内):

@discardableResult
func share(
items: [Any],
excludedActivityTypes: [UIActivity.ActivityType]? = nil
) -> Bool {
guard let source = UIApplication.shared.windows.last?.rootViewController else {
return false
}
let vc = UIActivityViewController(
activityItems: items,
applicationActivities: nil
)
vc.excludedActivityTypes = excludedActivityTypes
vc.popoverPresentationController?.sourceView = source.view
source.present(vc, animated: true)
return true
}

您可以在按钮操作或任何其他需要的地方使用此功能:

Button(action: {
share(items: ["This is some text"])
}) {
Text("Share")
}

关于SwiftUI 导出或共享文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56819360/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com