2012-09-17 2 views
1

이 난바코드 판독기는 아이폰에서 여러 번 스캔 한 후 두 번 나타납니다. 내가 바코드 scanning.I를 사용하는 아이 패드 응용 프로그램이 barcodes.Like를 스캔 할 ZBarSDK을 사용하고있다

- (void) imagePickerController: (UIImagePickerController*) reader 
didFinishPickingMediaWithInfo: (NSDictionary*) info 
{ 
    // ADD: get the decode results 
    id<NSFastEnumeration> results = 
    [info objectForKey: ZBarReaderControllerResults]; 
    ZBarSymbol *symbol = nil; 
    for(symbol in results) 
     // EXAMPLE: just grab the first barcode 
     break; 

    //commented blues 
    NSLog(@"%@",symbol.data); 

    [self sdsdsd:symbol.data]; 

    [reader dismissModalViewControllerAnimated:YES]; 


} 

sdssd에 의해 view.`

// ADD: present a barcode reader that scans from the camera feed 
     ZBarReaderViewController *reader = [ZBarReaderViewController new]; 
     reader.readerDelegate = self; 

     reader.supportedOrientationsMask = ZBarOrientationMaskAll; 

     reader.sourceType=UIImagePickerControllerSourceTypeCamera; 
     //reader.cameraDevice = UIImagePickerControllerCameraDeviceFront; 

     reader.cameraOverlayView=cameraOverlay; 

     if([UIImagePickerController isCameraDeviceAvailable:       UIImagePickerControllerCameraDeviceFront ]) 
     { 
      reader.cameraDevice = UIImagePickerControllerCameraDeviceFront; 
     } 
     ZBarImageScanner *scanner = reader.scanner; 

     reader.wantsFullScreenLayout = YES; 
     // TODO: (optional) additional reader configuration here 

     // EXAMPLE: disable rarely used I2/5 to improve performance 

     [scanner setSymbology: ZBAR_I25 
         config: ZBAR_CFG_ENABLE 
          to: 0]; 
     reader.showsZBarControls = NO; 
     // present and release the controller 
     [self temporarilyHideStatusBar]; 
     if(fromscan==YES) 
     { 
      [self presentModalViewController:reader animated:NO]; 
     } 
     else 
     { 
      [self presentModalViewController:reader animated:YES]; 
     } 

     [reader.view addSubview:back]; 
     [back addTarget:self action:@selector(backpressed:) forControlEvents:UIControlEventTouchUpInside]; 

     [reader release]; 

수행 한 검사입니다 제시하고있다 그 데이터를 가져 오는 나의 기능. 완벽하게 작동하는 모든 r.하지만 내 문제는 오버레이 스캔을 위해 눌려진 버튼이오고 있지만 스캔을 허용하지 않을 때 언젠가 스캔 한 후입니다. 그 오버레이 내부의 녹색 경계선이 다릅니다. 스캔이 이미 완료된 것처럼 보이고 있습니다. 다음 페이지에 나옵니다. 스캔에서. 아무도 왜 이것이 일어나고 있는지 알 수 있습니까?

+0

실제로는 작동하지 않는 것처럼 표시 스캐너를 일으키는 두 번 연속 스캐너 컨트롤러를로드하십시오. 부울 플래그를 추가하여 if (! scannerVisible) {scannerVisible = YES; [self showScanner]; } 두 번 올리는 것을 막기 위해. – Zhang

답변

-1

내가 앱이있을 수 있습니다 생각이

- (IBAction) scanButtonTapped 
{ 
    // ADD: present a barcode reader that scans from the camera feed 
    ZBarReaderViewController *reader = [ZBarReaderViewController new]; 
    reader.readerDelegate = self; 
    reader.supportedOrientationsMask = ZBarOrientationMaskAll; 

    ZBarImageScanner *scanner = reader.scanner; 
    // TODO: (optional) additional reader configuration here 

    // EXAMPLE: disable rarely used I2/5 to improve performance 
    [scanner setSymbology: ZBAR_I25 
        config: ZBAR_CFG_ENABLE 
         to: 0]; 

    // present and release the controller 
    [self presentModalViewController: reader 
          animated: YES]; 

} 

- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info 
{ 
    // ADD: get the decode results 
    id<NSFastEnumeration> results = 
    [info objectForKey: ZBarReaderControllerResults]; 
    ZBarSymbol *symbol = nil; 

    for(symbol in results) 
     // EXAMPLE: just grab the first barcode 
     break; 

    // EXAMPLE: do something useful with the barcode data 
    resultText.text = symbol.data; 

    // EXAMPLE: do something useful with the barcode image 
    resultImage.image = [info objectForKey: UIImagePickerControllerOriginalImage]; 

    // ADD: dismiss the controller (NB dismiss from the *reader*!) 
    [reader dismissModalViewControllerAnimated: YES]; 
} 
+0

와트는 이것입니다 ... 모든 조건을 제거 했습니까? – hacker

관련 문제