我想在另一个视图控制器中显示拍摄的图像(VC" First")(" Second")。 当我点击" First"我可以拍张照片。然后我看到两个选项:重拍和使用照片。点击后:使用照片我回到了vc" First"但是我想打开新的vc" Second"并在UIImageView中查看图像。
我在" First":
中创建了这样的代码var imagePicker: UIImagePickerController!
@IBAction func takePhoto(_ sender: Any) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.camera
imagePicker.allowsEditing = false
self.present(imagePicker, animated: true, completion: nil)
//self.performSegue(withIdentifier: "Second", sender: self)
}
你可以帮我解决这个问题吗?
答案 0 :(得分:1)
在第一个视图控制器中,您可以添加类变量:
var selectedImage: UIImage?
然后你切换到Main.storyboard。
控制+单击第一个视图控制器,然后从第一个视图控制器拖放到第二个视图控制器。选择"显示"在弹出窗口中创建一个segue。
现在在界面构建器中选择segue并为其指定标识符" Second"在属性中。 (如果你已经设置了segue,你可能已经这样做了)
然后,你可以改变你现在的方法:
self.present(imagePicker, animated: true, completion: nil)
到此:
self.present(self, animated: true) {
self.performSegue(withIdentifier: "Second", sender: self)
}
首先添加准备segue方法:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Second" {
let destinationVC = segue.destination as! Second
if let image = selectedImage {
destinationVC.selectedImage = image
}
}
}
在第二个你可以添加类变量:
var selectedImage: UIImage!
并在第二视图控制器的视图中设置图像视图图像加载方法
我确定还有其他方法可以做到。
答案 1 :(得分:-1)
最快的方式,初始化全局图像并将图像传递给它。
将此代码写入任何类别或结构之外的任何文件(理想情况下,将其命名):
var globalImage: UIImage?
然后从相机保存图像,在任何VC中显示,当用户按下保存时,将其添加到任何您想要的位置。只需确保安全打开图像以避免崩溃。