ios - 快速停止时使QR码阅读器再次启动

标签 ios swift uiviewcontroller qr-code

我有一个二维码阅读器,当找到二维码时,它会在模式中打开我的 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/

相关文章:

swift - 如何使用协议(protocol)函数作为 block 定义?

ios - 我可以在 watchkit 的 map 上添加按钮吗?

ios - 无法覆盖 UIViewController 中的 UITableView 委托(delegate)方法

iphone - 如何使用每个通知的 header 格式化推送通知?

objective-c - 应用程序的音频无法通过扬声器播放

ios - 有没有办法观察 UIViewPropertyAnimator 中 fractionComplete 的变化

ios - 目标 ViewController 在 segue 后没有改变

ios - 我想记住一个 (NSIndexPath *)indexPath 以便以后删除,但是崩溃了

支持 iOS Web 通知吗?

ios - 将数据从 View Controller 传递到第一个细节 Controller ,然后传递到第二个细节 Controller