swift - 将捕获/图库图像从一个 ViewController 传递到另一个
问题描述
我想捕捉一张照片或从画廊中挑选它,然后将它在 imageView 中传递给另一个 ViewController。我成功制作了续集,但我不知道如何从 imagePickerController 传递图像。
第一个视图控制器
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let selectedImage = info[.originalImage] as? UIImage{
imagePicker.dismiss(animated: true){
self.performSegue(withIdentifier: "goToCropScreen", sender: self)
}
}
}
//Navigation to other screens
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToCropScreen"{
let destinationVC = segue.destination as! CropViewController
destinationVC.imageToCrop = //Here is the problem. Idont know what image to use.
}
}
第二个视图控制器
class CropViewController: UIViewController {
@IBOutlet weak var cropImageView: UIImageView!
var imageToCrop : UIImage?
override func viewDidLoad() {
super.viewDidLoad()
cropImageView.image = imageToCrop
}
}
我知道我不能使用 selectedImage,因为它在 imagePickerController 中。有没有办法像全球一样使用它。
解决方案
在 FirstViewController 中创建一个变量。并将所选图像存储在此变量中并在prepare for segue
方法中传递值
class FirstViewController: UIViewController {
var selectedImage: UIImage?
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let selectedImage = info[.originalImage] as? UIImage{
imagePicker.dismiss(animated: true){
self.selectedImage = selectedImage
self.performSegue(withIdentifier: "goToCropScreen", sender: self)
}
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToCropScreen"{
let destinationVC = segue.destination as! CropViewController
destinationVC.imageToCrop = self.selectedImage
}
}
}
推荐阅读
- java - 如何更改 VSCode 的默认终端
- google-sheets - 将范围导入每第 N 行
- python - 提高循环遍历 pandas 数据帧的效率
- linux - 请求未调用 Scrapy 回调函数
- angular - 角度输入模式验证不起作用
- javascript - 您可以在 SQL SELECT 查询中使用从 AJAX 发布的数据吗
- python - Python简单的美式足球模拟器没有运行
- java - 处理 HttpURLConnection 重定向(NASA 开放 API)
- php - Woocommerce - 以编程方式更新产品变体时内存使用量很高
- html - 如何在表格行周围设置边框,但在任何内部单元格上都没有?