SwiftUI UIDocumentPickerViewControllerを使用する
SwiftUIでUIDocumentPickerViewControllerを使用する
Point
- final classにする
- NSObjectをベースに入れる
import SwiftUI
import UIKit
import UniformTypeIdentifiers
final class UIDocumentPickerViewControllerView: NSObject, UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIDocumentPickerViewController {
let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: [UTType.jpeg, UTType.png])
documentPicker.delegate = self
return documentPicker
}
func updateUIViewController(_ controller: UIDocumentPickerViewController, context: Context) {
print(#function)
}
}
extension UIDocumentPickerViewControllerView: UIDocumentPickerDelegate {
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
guard urls.count != 0 else {
return
}
print(#function)
print(urls.debugDescription)
}
}
使用する側Example
:
:
}
.sheet(isPresented: self.$onDocumentPicker, onDismiss: {}, content: {
UIDocumentPickerViewControllerView()
})






