【发布时间】:2020-12-26 21:49:04
【问题描述】:
所以我有一个条形码扫描按钮,我想按下它并扫描一个项目,然后检索条形码并在另一个按钮中使用检索到的条形码(这将发送一个带有条形码的 api 请求),我该怎么做?
如果有人能指出我正确的方向,我会很高兴,似乎无法在网上找到任何答案(可能是搜索错误的东西)。
提前致谢!
这是我的部分代码:
import UIKit
import AVFoundation
import QRCodeReader
import Alamofire
class NewViewController: UIViewController, QRCodeReaderViewControllerDelegate {
lazy var readerVC: QRCodeReaderViewController = {
let builder = QRCodeReaderViewControllerBuilder {
//change object to scan and the initial position of the camera
$0.reader = QRCodeReader(metadataObjectTypes: [.qr, .ean13], captureDevicePosition: .back)
// Configure the view controller (optional)
$0.showTorchButton = true
$0.showSwitchCameraButton = false
$0.showCancelButton = true
$0.showOverlayView = true //shows the square area of the QRCode Scanner
$0.rectOfInterest = CGRect(x: 0, y: 0, width: 1, height: 1)
//$0.rectOfInterest = CGRect(x: 0.12, y: 0.3, width: 0.8, height: 0.6)
}
return QRCodeReaderViewController(builder: builder)
}()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
readerVC.delegate = self
}
func reader(_ reader: QRCodeReaderViewController, didScanResult result: QRCodeReaderResult) {
//code to be added
reader.stopScanning()
print(result)
print(result.value) //I WANT TO USE THIS RESULT SOMEWHERE ELSE //ANOTHER BUTTON
dismiss(animated: true, completion: nil)
}
func readerDidCancel(_ reader: QRCodeReaderViewController) {
//code to be added
reader.stopScanning()
dismiss(animated: true, completion: nil)
}
@IBAction func BARCODESCANNER(_ sender: UIButton) {
readerVC.modalPresentationStyle = .formSheet
self.present(readerVC, animated: true)
//THIS BUTTON OPENS THE BARCODE SCANNER AND RETRIEVES RESULT IN THE "func reader" ABOVE
}
@IBAction func ANOTHERBUTTON(_ sender: Any) {
// I WANT TO USE THE RETRIEVED BARCODE HERE WITH MORE CODE FOR AN API REQUEST
}
}
【问题讨论】: