【问题标题】:Capture User Select From photoLibrary UIImagePicker In SWIFTUI View在 SWIFTUI 视图中从 photoLibrary UIImagePicker 捕获用户选择
【发布时间】:2021-11-11 23:20:27
【问题描述】:

我是 SWIFT UI 的新手,并试图让用户在 SWIFT UI 视图中从本地库中选择一张照片。我被困在实际捕捉用户动作上。

这是我创建选择器的尝试:

final class ChooseImageView: NSObject, UIViewControllerRepresentable, UIImagePickerControllerDelegate, UINavigationControllerDelegate  {
    
    func makeUIViewController(context: UIViewControllerRepresentableContext<ChooseImageView>) -> UIImagePickerController {
        let libraryPicker = UIImagePickerController()
        libraryPicker.sourceType = .photoLibrary
        libraryPicker.delegate = self
        
        return libraryPicker
    }
    
    func updateUIViewController(_ uiViewController: UIImagePickerController,
                                context: UIViewControllerRepresentableContext<ChooseImageView>) {
        
    }
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        
        // I don't see this ever
        print("I got a change")
    }
    
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        picker.dismiss(animated: true, completion: nil)
    }
}

我正在尝试将其嵌入到如下所示的视图中:

struct PhotoPage: View {
    
    var body: some View {
        VStack(alignment: .center) {
            ChooseImageView()
        }
    }

}

有人知道我怎样才能执行该打印语句吗?

【问题讨论】:

    标签: ios swift iphone


    【解决方案1】:

    好吧,我运行了你的代码,我可以在控制台中看到打印语句。

    【讨论】:

    • 有趣,你在 info.plist 中添加了什么吗?也许这就是我遇到问题的地方?
    • 这是一个新项目,我没有在 info.plist 中添加任何内容
    • 感谢您指出这一点,我将变量声明留在了视图中,假设它们不是问题所在。事实证明,'@Environment(\.presentationMode) var presentationMode' 是我的问题的根源。
    • 很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多