我有一个二维码阅读器,当找到二维码时,它会在模式中打开我的 detailViewController。在我的 detailViewController 上,您可以关闭模态,例如,如果它不是您要扫描的正确 QR 码。问题是,在我的代码中,QR 码阅读器设置为停止,当找到 QR 码并且关闭模式时,它不会再次启动?我怎样才能让它重新启动?
这里有我的代码来自 QR 代码 View Controller ,只是在找到 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
}
最佳答案
停止是因为您正在停止 captureSession
self.captureSession!.stopRunning() // This is the part stopping it
关闭 ViewController 后,你必须检查你的 self.captureSession
是否为 nil,如果为 nil,则你必须创建一个新的捕获 session ,如果它不是 nil,则你有再次开始该 session 。像这样
self.captureSession!.startRunning()
因此,在 viewDidLoad
中初始化您的 captureSession,并在 viewWillAppear
中启动您的 session 。与关闭 ViewController 一样,不会调用 viewDidLoad。
关于ios - 快速停止时使QR码阅读器再次启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39289362/