Skip to content
Snippets Groups Projects
Commit b0361af7 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Add ImagePicker view to AppCore

parent 84197738
No related branches found
No related tags found
2 merge requests!124File transfers example,!102Release 1.0.0
import UIKit
import SwiftUI
public struct ImagePicker: UIViewControllerRepresentable {
public init(onImport: @escaping (UIImage) -> Void) {
self.onImport = onImport
}
var onImport: (UIImage) -> Void
@Environment(\.presentationMode) private var presentationMode
public func makeCoordinator() -> Coordinator {
Coordinator(self)
}
public func makeUIViewController(context: Context) -> UIImagePickerController {
let controller = UIImagePickerController()
controller.delegate = context.coordinator
return controller
}
public func updateUIViewController(
_ uiViewController: UIImagePickerController,
context: Context
) {}
}
extension ImagePicker {
public final class Coordinator: NSObject, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
init(_ picker: ImagePicker) {
self.picker = picker
super.init()
}
public func imagePickerController(
_ controller: UIImagePickerController,
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]
) {
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
DispatchQueue.main.async {
self.picker.onImport(image)
}
}
picker.presentationMode.wrappedValue.dismiss()
}
let picker: ImagePicker
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment