I wrote short code for the App using camera and that crushed when I tried to display preview. There is no error code, so where should I fix?
@State var image: Image?
@State var isPicking = false
var body: some View {
ZStack {
VStack {
VStack {
Spacer()
image?
.resizable()
.scaledToFit()
Spacer()
}
HStack {
Spacer()
Button(action: {
self.isPicking = true
}) {
Image(systemName: "camera")
Text("カメラ")
}.padding()
}
}
if isPicking {
ImagePicker()
.edgesIgnoringSafeArea(.all)
.transition(.move(edge: .bottom))
.animation(.easeInOut, value: isPicking)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
ImagePicker↓
struct ImagePicker: UIViewControllerRepresentable{
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIViewController(context: Context) ->
UIImagePickerController{
let picker = UIImagePickerController()
picker.sourceType = .camera
picker.delegate = context.coordinator
return picker
}
func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) {
}
}
struct ImagePicker_Previews: PreviewProvider {
static var previews: some View {
ImagePicker()
}
}
Coordinator↓
class Coordinator: NSObject, UINavigationControllerDelegate,
UIImagePickerControllerDelegate{
var parent: ImagePicker
init(_ parent: ImagePicker){
self.parent = parent
}
func imagePickerController(_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info:
[UIImagePickerController.InfoKey: Any]){
let uiImage = info[.originalImage] as! UIImage
UIImageWriteToSavedPhotosAlbum(uiImage, nil, nil, nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController){
}
}