另一个视图控制器中的swift显示图像(图像视图)

时间:2017-08-22 15:30:17

标签: ios swift image uiimageview photo

我想在另一个视图控制器中显示拍摄的图像(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)
}

你可以帮我解决这个问题吗?

2 个答案:

答案 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中显示,当用户按下保存时,将其添加到任何您想要的位置。只需确保安全打开图像以避免崩溃。