// // ImagePicker.swift // SodaLive // // Created by klaus on 2023/08/09. // import SwiftUI struct ImagePicker: UIViewControllerRepresentable { @Binding var isShowing: Bool @Binding var selectedImage: UIImage? let sourceType: UIImagePickerController.SourceType func makeUIViewController(context: Context) -> UIImagePickerController { let picker = UIImagePickerController() picker.delegate = context.coordinator return picker } func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) { } func makeCoordinator() -> Coordinator { return Coordinator(self) } } class Coordinator: NSObject, UIImagePickerControllerDelegate, UINavigationControllerDelegate { let parent: ImagePicker init(_ parent: ImagePicker) { self.parent = parent } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if let image = info[.originalImage] as? UIImage { parent.selectedImage = image parent.isShowing = false } } func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { parent.isShowing = false } }