import SwiftUI import PhotosUI struct MultiPHPickerView: UIViewControllerRepresentable { @Environment(\.presentationMode) private var presentationMode @Binding var itemProviders: [NSItemProvider] func makeCoordinator() -> Coordinator { Coordinator(self) } func makeUIViewController(context: Context) -> PHPickerViewController { var configuration = PHPickerConfiguration() configuration.filter = .images configuration.selectionLimit = 0 let controller = PHPickerViewController(configuration: configuration) controller.delegate = context.coordinator return controller } func updateUIViewController( _ uiViewController: PHPickerViewController, context: Context) {} class Coordinator: NSObject, PHPickerViewControllerDelegate { @Environment(\.presentationMode) private var presentationMode var parent: MultiPHPickerView init( _ parent: MultiPHPickerView ) { self.parent = parent } func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { picker.dismiss( animated: true ) self.parent.itemProviders = results.map(\.itemProvider) } } }