ImagePicker不提供退出画廊的选项

时间:2020-10-02 23:31:37

标签: ios swift swiftui

我的ImagePicker不允许用户返回/退出画廊...((右上角应该有一个cancel按钮:

enter image description here

这是我的ImagePicker

struct ImagePicker: UIViewControllerRepresentable {
    let key: String
    @Binding var uiImage: UIImage?
    @Environment(\.presentationMode) var presentationMode
    
    func makeCoordinator() -> Coordinator {
        Coordinator(self)
    }
    
    func makeUIViewController(context: Context) -> UIImagePickerController {
        let controller = UIImagePickerController()
        controller.sourceType = .photoLibrary
        controller.delegate = context.coordinator
        return controller
    }
    func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) {
        
    }
    
    class Coordinator: NSObject, UIImagePickerControllerDelegate, UINavigationControllerDelegate{
        var parent: ImagePicker
        init(_ parent: ImagePicker) {
            self.parent = parent
        }
        
        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
            if let img = info[.originalImage] as? UIImage {
                parent.uiImage = img
            }
            parent.presentationMode.wrappedValue.dismiss()
        }
    }
    
}

这是使用它/触发它打开的视图:

struct EditableCircleImage: View {
    @ObservedObject var storage = Storages()
    let key: String
    let imgName: String?
    @State var image: Image = Image(systemName: "plus.circle")
    @State var uiImage: UIImage?

    @Binding var showImagePicker: Bool

    var body: some View {
        ZStack {
            image
                .resizable()
                .scaledToFit()
                .aspectRatio(contentMode: .fill)
                .frame(width: 80, height: 80)
                .clipShape(Circle())
        }
        .padding(8)
        .sheet(isPresented: $showImagePicker, onDismiss: loadImage){
            ImagePicker(key: self.key, uiImage: self.$uiImage)
        }
    }
   

知道什么问题吗?

0 个答案:

没有答案