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()
})




