2017-06-20 3 views
0

Ich habe eine Tableviewcontroller die Geschenke (push) ein Viewcontroller (ScannerViewController) mit diesem Code: Bar Code ScannerWie programmgesteuert eine Seque auslösen?

Es gibt die folgende Methode:

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) { 
    captureSession.stopRunning() 

    if let metadataObject = metadataObjects.first { 
     let readableObject = metadataObject as! AVMetadataMachineReadableCodeObject; 

     AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate)) 
     found(code: readableObject.stringValue); 
    } 

    dismiss(animated: true) 
} 

Statt entlassen (animiertes: true) Ich möchte eine Seque auszulösen. Das Verfahren in dem Tableviewcontroller ist:

@IBAction func unwindWithSelectedCode(segue: UIStoryboardSegue) { 

    if let scannerViewController = segue.source as? ScannerViewController, 
     let selectedCode = scannerViewController.code { 
     myCode = selectedCode 
    } 
} 

Normalerweise habe ich einen Knopf, den ich Viewcontrollers Beenden Sie Zeichen auf dem oberen Rand des VC im Storyboard verbinden und die oben beschriebene Methode nennen. Aber ich habe keinen Knopf. Also, wie kann ich die seque-Methode programmgesteuert ohne eine Schaltfläche aufrufen?

Antwort

0

versuchen diese

self.performSegue(withIdentifier: "unwindSegueIdentifier", sender: self) 

unwindSegueIdentifier mit Ihrer Kennung des

+0

Dank ersetzen. Wenn ich diesen Code anstelle der Methode ablehnt(), führt es die Seque, aber der Code wird nicht in der TableViewController angezeigt. Irgendeine Idee, wie man das löst? – Martin

Verwandte Themen