2016-07-26 33 views
-4

我希望我错过了这里很简单的东西,但我似乎无法让我的头在附近!发送数据到下一个视图控制器后QR码读取

我读的QR码,并推到我的下一个视图控制器一旦QR代码已被阅读:

if metadataObj.stringValue != nil { 
      let qrData = metadataObj.stringValue 

      let segueViewController = self.storyboard?.instantiateViewControllerWithIdentifier("confirmScan") as? ScanConfirm 
      self.navigationController?.pushViewController(segueViewController!, animated: true) 
      captureSession?.stopRunning() } 

然后,我会想通过QR码发现的数据,并显示在我的下一个视图的标签。我曾尝试使用prepareForSegue,但这似乎并没有工作。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let NextViewController : ScanConfirm = segue.destinationViewController as! ScanConfirm 
    NextViewController.newLabel.text = qrData 
} 

任何帮助将HUGELY赞赏!

感谢

+0

你得到qrData后,你可以简单地调用performSegueWithIdentifier –

+0

看看这个答案:http://stackoverflow.com/a/29846611/765298 – Losiowaty

+2

我猜'newLabel'只是在你移动到你的'NextViewController'之前才创建的。 – Elena

回答

0

ScanConform

class ScanConform: UIViewController { 
var scanData:String? 

创建属性您可以将下面的代码viewDidLoad中或viewwillapper

override func viewDidLoad() { 
     super.viewDidLoad() 
guard let displayData = scanData else { return } 
newLabel.text = displayData 
    } 
} 

虽然设置数据得很不喜欢这个

if metadataObj.stringValue != nil { 
     let qrData = metadataObj.stringValue 

     let segueViewController = self.storyboard?.instantiateViewControllerWithIdentifier("confirmScan") as? ScanConfirm 
segueViewController.scanData = grData  
     self.navigationController?.pushViewController(segueViewController!, animated: true) 
     captureSession?.stopRunning() 
} 
+0

优秀!这工作完美。非常感谢您的“迅速”回应! – evorg88

相关问题