2016-08-31 8 views
-3

次のコードがあり、それはどうするのですか? カメラがQRコードを検出すると、識別子:SendDataSegueを通してDetailViewControllerが開きます。問題は、QRコードが検出されたときに何も起こらないということですか?誰も私をここで助けることができますか?私はprepareforsegueを使用しようとしているコードの最後にあります。qrコードでprepareforsegueを有効にしてください

func captureOutput(captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [AnyObject]!, fromConnection connection: AVCaptureConnection!) { 
 
     
 
     // Check if the metadataObjects array is not nil and it contains at least one object. 
 
     if metadataObjects == nil || metadataObjects.count == 0 { 
 
      qrCodeFrameView?.frame = CGRectZero 
 
      messageLabel.text = "No barcode/QR code is detected" 
 
      return 
 
     } 
 
     
 
     // Get the metadata object. 
 
     let metadataObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject 
 
     
 
     // Here we use filter method to check if the type of metadataObj is supported 
 
     // Instead of hardcoding the AVMetadataObjectTypeQRCode, we check if the type 
 
     // can be found in the array of supported bar codes. 
 
     if supportedBarCodes.contains(metadataObj.type) { 
 
//  if metadataObj.type == AVMetadataObjectTypeQRCode { 
 
      // If the found metadata is equal to the QR code metadata then update the status label's text and set the bounds 
 
      let barCodeObject = videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj) 
 
      qrCodeFrameView?.frame = barCodeObject!.bounds 
 
      
 
      if metadataObj.stringValue != nil { 
 
       
 
       
 
       func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
 
        if (segue.identifier == "SendDataSegue") { 
 
         // pass data to next view 
 
        } 
 
       } 
 
       
 
       
 
       
 
       
 
      } 
 
     } 
 
    }

+0

あなたはそのメソッドを宣言していません。 'self.performSegue(" SendDataSegue "、sender:nil)'を実行するだけです。 – Larme

+0

しかし、ラベルを持っていれば、DetailViewController上でQRコードの内容に変更する必要がありますか? –

+0

あなたのコードを使用するとき@Larmeと言う:タイプViewControllerの値はメンバーがありませんpreformSegue –

答えて

0

コードのこの作品は、私を助け:

dispatch_async(dispatch_get_main_queue()){ 
       self.performSegueWithIdentifier("SendDataSegue", sender:self) 


      } 

誰もがそれを介してデータを渡す方法を知っていますか?私は通常のfunc prepareforsegueでデータを渡すことができますが、これをどうすればできますか?

関連する問題