gpt4 book ai didi

swift - 如何让用户拍照并分享?

转载 作者:行者123 更新时间:2023-11-30 10:44:37 24 4
gpt4 key购买 nike

我正在使用 Xcode 10、swift 5。我有一个 tableViewController,允许用户点击、左右滑动。当向右滑动时,它会显示一个表示完成的前导按钮。当用户点击该按钮时,会出现一个共享对话框,允许他们共享工作。我正在努力实现一个 UIPickerController,它允许用户拍摄他们的项目的照片并将其嵌入到共享对话框中。

override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

let complete = UIContextualAction.init(style: .normal, title: "Complete") { (action, view, completion) in
let completedTxt = "Look at what I fixed, thanks to @DIY Home Repair!"

let vc = UIImagePickerController()
vc.sourceType = .camera
vc.allowsEditing = false
vc.delegate = self

self.present(vc, animated: true)

let activityController = UIActivityViewController(activityItems: [completedTxt, ], applicationActivities: nil)

self.present(activityController, animated: true, completion: nil)
completion(true) // Completion

}
<小时/>
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
picker.dismiss(animated: true)

guard let image = info[.originalImage] as? UIImage else {
print("No image found")
return
}

// print out the image size as a test
print(image.size)
}

}

该代码显示相机并允许用户拍照,但照片无处可去,并且共享对话框也不会出现。当我删除 UIPickerController 的代码时,会出现共享对话框,其中包含预先填充的文本。

最佳答案

这是因为当您呈现一个 Controller 时,已经有一个 UI 任务正在运行,因此您无法同时呈现 2 个 Controller 。

根据您的问题,您应该将 UIActivityViewController 放在 didFinishPickingMediaWithInfo 方法中,以便您可以在共享表中添加图像。

关于swift - 如何让用户拍照并分享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56011743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com