将捕获的图像添加到下一个视图Swift 3 Xcode 8

时间:2016-11-03 16:27:31

标签: ios swift swift3 xcode8 capture

我正在使用 AVFoundation 进行捕获。我想将捕获的图像添加到下一个视图的UIImageView中。我有一个代码,可以让我将一张照片添加到一个UIImageView:

    func saveToCamera() {

    if let videoConnection = stillImageOutput.connection(withMediaType: AVMediaTypeVideo) {

        stillImageOutput.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (CMSampleBuffer, Error) in
            if let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(CMSampleBuffer) {

                if let cameraImage = UIImage(data: imageData) {

                    UIImageWriteToSavedPhotosAlbum(cameraImage, nil, nil, nil)
                    self.scan = cameraImage //recording captured image to variable
                }

            }
        })
    }
}

准备segue代码:

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if(segue.identifier == "MainSegue"){
        let yourNextViewController = (segue.destination as! MainView)
        yourNextViewController.scan = scan
        }            
    }
}

下一个观点:

var scan: UIImage!
@IBOutlet weak var imgScan: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    imgScan.image = scan
}

它是原始的并且完美地工作,但仅适用于一个图像。但是我想要制作六张照片并将它们添加到六个ImageView中。我该怎么办?

1 个答案:

答案 0 :(得分:1)

我希望这里的关键是改变这个:

var scan: UIImage!

到此:

var scan: [UIImage] = []()

现在,您可以append添加一个数组,并在prepare中添加每个图像。当然,您还必须更改第二个视图控制器中的代码,以查看您已获得的图像数量,并将它们分配给您的各种图像视图,但这是一个微不足道的变化。