title: Scanning barcode with AVCaptureMetadataOutput and AVFoundation
body: <p>I am using AVFoundation and AVCaptureMetadataOutput to scan a QR barcode in iOS7, I present a view controller which allows the user to scan a barcode. It is working fine, ie. a barcode is being scanned and I can output the barcode string to console.</p>
  
  <p>But it keeps scanning over and over again, see screen shot. What I want it to do is scan the barcode just the once and then dismissViewController.</p>
  
  <p>Here is my code for the delegate method:</p>
  
  <pre><code>- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
  {
  CGRect highlightViewRect = CGRectZero;
  
  AVMetadataMachineReadableCodeObject *barCodeObject;
  NSString *detectionString = nil;
  NSArray *barCodeTypes = @[AVMetadataObjectTypeUPCECode, AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeCode39Mod43Code,
          AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode93Code, AVMetadataObjectTypeCode128Code,
          AVMetadataObjectTypePDF417Code, AVMetadataObjectTypeQRCode, AVMetadataObjectTypeAztecCode];
  
  for (AVMetadataObject *metadata in metadataObjects) {
      for (NSString *type in barCodeTypes) {
          if ([metadata.type isEqualToString:type])
          {
              barCodeObject = (AVMetadataMachineReadableCodeObject *)[self.preview transformedMetadataObjectForMetadataObject:(AVMetadataMachineReadableCodeObject *)metadata];
              highlightViewRect = barCodeObject.bounds;
              detectionString = [(AVMetadataMachineReadableCodeObject *)metadata stringValue];
              break;
          }
      }
  
      if (detectionString != nil)
      {
          NSLog(@"Barcode: %@", detectionString);
  
          break;
      }
      else
          NSLog(@"None");
  }
  
  self.highlightView.frame = highlightViewRect;
  
  }
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/raNoz.png" alt="enter image description here"></p>