2016-07-26 3 views
-4

Ich hoffe, dass ich hier etwas ziemlich Einfaches verpasse, aber ich kann mich nicht damit abfinden!Daten zum nächsten View-Controller senden, nachdem der QR-Code gelesen wurde

ich einen QR-Code zu lesen und zu meinem nächsten View-Controller drücken, wenn der QR-Code gelesen wurde:

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

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

Ich würde dann in den Code QR gefunden, die Daten zu übergeben möchten und zeigen es in meinem Etikett der nächsten Ansicht Ich habe versucht preparedForSegue, aber das scheint nicht zu funktionieren.

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

Jede Hilfe wäre HUGELY geschätzt!

Dank

+0

, nachdem Sie die qrData bekommen, können Sie einfach performSegueWithIdentifier –

+0

einen Blick auf diese Antwort Anruf annehmen: http://stackoverflow.com/a/29846611/765298 – Losiowaty

+2

Ich denke, 'newLabel' wird erst erstellt, wenn Sie zu Ihrem' NextViewController' gehen. – Elena

Antwort

0

schaffen eine Eigenschaft in ScanConform Klasse

class ScanConform: UIViewController { 
var scanData:String? 

Sie unter Code viewDidLoad oder viewwillapper

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

Während Dateneinstellungen gefällt das

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

Ausgezeichnet! Das hat perfekt funktioniert. Vielen Dank für Ihre 'schnelle' Antworten! – evorg88

Verwandte Themen