SwiftUIでUIActivityViewControllerを表示する
SwiftUIでUIActivityViewControllerを表示する方法です。 ボタンを押すと URL を共有するシートを表示します。

参考: Showing ‘UIActivityViewController’ in SwiftUI
ActivityViewController.swift
import SwiftUI
struct ActivityViewController: UIViewControllerRepresentable {
var activityItems: [Any]
var applicationActivities: [UIActivity]? = nil
func makeUIViewController(context: UIViewControllerRepresentableContext<ActivityViewController>) -> UIActivityViewController {
let controller = UIActivityViewController(activityItems: activityItems, applicationActivities: applicationActivities)
return controller
}
func updateUIViewController(_ uiViewController: UIActivityViewController, context: UIViewControllerRepresentableContext<ActivityViewController>) {}
}
ContentView.swift
import SwiftUI
struct ContentView: View {
@State private var showingActivityIndicator: Bool = false
var body: some View {
Button("Share swiswiswift.com") {
showingActivityIndicator = true
}
.sheet(isPresented: $showingActivityIndicator, content: {
ActivityViewController(activityItems: [URL(string: "https://swiswiswift.com")!])
})
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
