У меня проблемы с передачей данных, отсканированных моим пользовательским сканером штрих-кода.
Данные успешно прочитаны, и я могу присвоить значение переменной. Но я не могу передать данные обратно в предыдущий контроллер представления для заполнения текстового представления.
Я использую это ниже, чтобы перейти к моему штрих-коду VC для хранения данных внутри него
var barcodeScanData: String = ""
Я использую подготовиться к передаче ниже до
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "BarcodeScanVC" {
let desitnationVC = segue.destination as! BarcodeScanVC
desitnationVC.xyz = barcodeScanData
}
}
Ниже я пытаюсь отправить данные с моего собственного сканера штрих-кода
var xyz: String = ""
func launchApp(barcodeScan: String) {
if presentedViewController != nil {
return
}
let alertPrompt = UIAlertController(title: "Barcode Found", message: "\(barcodeScan)", preferredStyle: .actionSheet)
let confirmAction = UIAlertAction(title: "Confirm", style: UIAlertAction.Style.default, handler: { (action) -> Void in
let barcodeData = PartsVCDetail()
self.xyz = barcodeScan
barcodeData.barcodeScanData = self.xyz
print(self.xyz, "This is what I am sending")
print(barcodeData.barcodeScanData, "This is what I am sending it TO" )
self.navigationController?.popViewController(animated: true)
})
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel, handler: nil)
alertPrompt.addAction(confirmAction)
alertPrompt.addAction(cancelAction)
present(alertPrompt, animated: true, completion: nil)
}
Две линии печати
print(self.waybill, "This is what I am sending")
print(barcodeData.barcodeScanData, "This is what I am sending it TO"
Покажите мне правильные данные сканирования, когда я использую последнюю строку ниже:
self.navigationController?.popViewController(animated: true)
Данные потеряны, и я вижу пустое значение в моем viewDidAppear на первом контроллере представления:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
print(barcodeScanData, "This is empty but it shouldnt be")
dataFromBarcodeScanner.text = barcodeScanData
}
Чего мне не хватает?