我有一个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
}
答案 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不会被调用。