Skip to content

Using UIImagePickerController with SwiftUI

   

It is a way to Using UIImagePickerController with SwiftUI. I can choose any image.

ImagePicker

Importing an image into SwiftUI using UIImagePickerController

import SwiftUI
struct ContentView: View {
@State private var image: Image = Image("icon")
@State private var showingImagePicker = false
@State private var inputImage: UIImage?
var body: some View {
Button(action: {
print("Tapped")
self.showingImagePicker = true
}) {
image
.resizable()
.renderingMode(.original)
.frame(width: 100, height: 100)
Text("Tap Me!!")
}.sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
ImagePicker(image: self.$inputImage)
}
}
func loadImage() {
guard let inputImage = inputImage else { return }
image = Image(uiImage: inputImage)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct ImagePicker: UIViewControllerRepresentable {
@Environment(\.presentationMode) var presentationMode
@Binding var image: UIImage?
class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
let parent: ImagePicker
init(_ parent: ImagePicker) {
self.parent = parent
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
if let uiImage = info[.originalImage] as? UIImage {
parent.image = uiImage
}
parent.presentationMode.wrappedValue.dismiss()
}
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker>) -> UIImagePickerController {
let picker = UIImagePickerController()
picker.delegate = context.coordinator
return picker
}
func updateUIViewController(_ uiViewController: UIImagePickerController, context: UIViewControllerRepresentableContext<ImagePicker>) {
}
}

  1. Create a sequential numbered array in Swift
  2. Do not change the color of the Image in the Button with SwiftUI
  3. I tried all the ModalPresentationStyle of iOS 13
  4. Detect video end with Swift
  5. Play videos with Swift
  6. Display the side menu (hamburger menu) in SwiftUI with SwiftUI.
  7. Change the color of Section of List in SwiftUI