weak var delegate: QRScanViewControllerDelegate?
var captureSession: AVCaptureSession? = AVCaptureSession()
let metadataOutput = AVCaptureMetadataOutput()
- var previewLayer: AVCaptureVideoPreviewLayer!
+ var previewLayer: AVCaptureVideoPreviewLayer?
override func viewDidLoad() {
super.viewDidLoad()
metadataOutput.setMetadataObjectsDelegate(self, queue: .main)
metadataOutput.metadataObjectTypes = [.qr]
- previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
+ let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.frame = view.layer.bounds
previewLayer.videoGravity = .resizeAspectFill
view.layer.insertSublayer(previewLayer, at: 0)
+ self.previewLayer = previewLayer
}
override func viewWillAppear(_ animated: Bool) {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
- if let connection = previewLayer.connection {
+ if let connection = previewLayer?.connection {
let currentDevice: UIDevice = UIDevice.current
}
}
}
-
- previewLayer.frame = self.view.bounds
+
+ previewLayer?.frame = self.view.bounds
}
func scanDidComplete(withCode code: String) {