使 QR 码 reader 在停止时重新启动 swift

Making QR Code reader start again when stopped swift

我有一个 QR 码 reader,在找到 QR 码时会在模式中打开我的 detailViewController。在我的 detailViewController 上,您可以关闭模​​态,例如,如果它不是您要扫描的正确 QR 码。问题是在我的代码中,QR 码 reader 设置为停止,当找到 QR 码并关闭模态时,它不会再次启动?我怎样才能让它重新启动?

这里是我的二维码 viewcontroller 代码,只是在找到二维码并在底部停止二维码时对我的应用程序的其余部分执行某些操作的部分 reader:

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
        }

那是停止,因为你正在停止 captureSession

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

关闭你的 ViewController 后你必须检查你的 self.captureSession 是否为 nil,如果为 nil 那么你必须创建一个新的捕获会话,如果它不是 nil 那么你必须开始那个会话 again.Like 这个

self.captureSession!.startRunning() 

所以在 viewDidLoad 中初始化您的 captureSession 并在 viewWillAppear 中启动您的 session.As 关闭 ViewController,viewDidLoad 将不会被调用。