当快速停止时,使QR码阅读器重新启动

时间:2016-09-02 09:45:51

标签: ios swift uiviewcontroller qr-code

我有一个QR码阅读器,当找到QR码时,我会在一个模态中打开我的detailViewController。在我的detailViewController上,您可以解除模态,例如,如果它不是您想要扫描的正确的QR码。问题是在我的代码中,QR码阅读器被设置为停止,当找到QR码时,当您解除模态时,它不会再次启动?我怎样才能让它再次启动?

这里有来自QR码视图控制器的代码,只是在找到QR码时对我的应用程序的其余部分执行某些操作的部分,并在底部停止QR读取器:

if metadataObj.stringValue != nil {
            // messageLabel.text = metadataObj.stringValue

            messageLabel.backgroundColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)
            messageLabel.text = "QR code found!"
            passData = metadataObj.stringValue as String

            dispatch_async(dispatch_get_main_queue()) { [unowned self] in
                self.performSegueWithIdentifier("SendDataSegue", sender: self.passData)
            }

            self.captureSession!.stopRunning() // This is the part stopping it
        }

1 个答案:

答案 0 :(得分:0)

由于您正在停止captureSession

,因此停止了
self.captureSession!.stopRunning() // This is the part stopping it

解雇你的ViewController之后你必须检查你的self.captureSession是否为零,如果它是零,那么你必须创建一个新的捕获会话,如果它不是nil那么你必须再次启动那个会话。喜欢这个

self.captureSession!.startRunning() 

所以在viewDidLoad初始化你的captureSession并在viewWillAppear启动你的session。在关闭ViewController时,viewDidLoad不会被调用。

相关问题