I made UIViewControllerRepresentable to warp the UIActivityViewController into SwiftUI like this:
struct ShareSheet: UIViewControllerRepresentable {
typealias Callback = (_ activityType: UIActivity.ActivityType?, _ completed: Bool, _ returnedItems: [Any]?, _ error: Error?) -> Void
let activityItems: [Any]
let applicationActivities: [UIActivity]? = nil
let excludedActivityTypes: [UIActivity.ActivityType]? = nil
let callback: Callback? = nil
func makeUIViewController(context: Context) -> UIActivityViewController {
let controller = UIActivityViewController(
activityItems: activityItems,
applicationActivities: applicationActivities)
controller.excludedActivityTypes = excludedActivityTypes
controller.completionWithItemsHandler = callback
return controller
}
func updateUIViewController(_ uiViewController: UIActivityViewController, context: Context) {
// nothing to do here
}
The problem is: when I pass UIImage object its works, like this:
ShareSheet(activityItems: [UIImage(named: "doc")!])
But if I pass Image object its not work, like this:
ShareSheet(activityItems: [Image("doc")])
In my App I have only images in Image object not UIImage, so, can I warp Image to UIImage Or I have to do something else?