使 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 将不会被调用。
我有一个 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 将不会被调用。