2015-07-16 2 views
0

У меня есть следующий код:проверить, если окно с видом на открытом

#pragma mark Barcodescanner 
- (void)barcodeScanner:(id)sender { 

UIWindow *window = [UIApplication sharedApplication].delegate.window; 

//UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, window.frame.size.width, window.frame.size.height)]; 

UIView *view = [[UIView alloc] initWithFrame:CGRectMake((window.frame.size.width - 600)/2, (window.frame.size.height - 400)/2, 600, 400)]; 

//Here it should be checked if the scanner is open, if it is open, the scanner should closed, if the scanner is not open, the scanner should be open 
[window addSubview:view]; 

self.scanner = [[MTBBarcodeScanner alloc] initWithPreviewView:view]; 


[MTBBarcodeScanner requestCameraPermissionWithSuccess:^(BOOL success) { 
    if (success) { 

     [self.scanner startScanningWithResultBlock:^(NSArray *codes) { 

      [self.scanner stopScanning]; 

      AVMetadataMachineReadableCodeObject *code = [codes firstObject]; 

      NSRange rangeTypeOfEngine = NSMakeRange(0, 2); 
      NSString *typOfEngine = [code.stringValue substringWithRange:rangeTypeOfEngine]; 

      NSRange rangeSerialNumberOfEngine = NSMakeRange(2, code.stringValue.length - 2); 
      NSString *serialNumberOfEngine = [code.stringValue substringWithRange:rangeSerialNumberOfEngine]; 

      NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; 
      f.numberStyle = NSNumberFormatterDecimalStyle; 
      NSNumber *myNumber = [f numberFromString:typOfEngine]; 


      NSString *nameOfEngine; 

      switch ([myNumber intValue]) { 
       case 10: 
       case 11: 
       case 12: 
       case 13: 
        nameOfEngine = @"T100"; 
        break; 
       default: 
        nameOfEngine = @"noname"; 
        serialNumberOfEngine = @""; 
        break; 
      } 


      Geraet *newGeraet = [NSEntityDescription insertNewObjectForEntityForName:@"Geraet" inManagedObjectContext:MOC]; 
      newGeraet.einsatzbericht = self.einsatzbericht; 
      newGeraet.bezeichnung = nameOfEngine; 
      newGeraet.nummer = serialNumberOfEngine; 

      [MOC save:nil]; 

      [[NSNotificationCenter defaultCenter] postNotificationName:kUpdateListOfDevices object:nil]; 

      [view removeFromSuperview]; 


      /* 
       NSArray *codeArray = [code.stringValue componentsSeparatedByString:@"\n"]; 

       [view removeFromSuperview]; 

       DLAVAlertView *alertView = [[DLAVAlertView alloc] initWithTitle:@"Fehler" message:@"Ungültiger Code" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
       [alertView show]; 
      */ 
     }]; 

    } else { 
      [view removeFromSuperview]; 
    } 
}]; 
} 

добавляет полную функцию, чтобы увидеть, что он будет делать.

Моя проблема в том, что когда кто-то нажимает на камеру для открытия сканера, он не может отменить сканер, пока не сканирует любой штрих-код.

+0

В чем проблема? Опишите –

ответ

0

Camera and Alert View Открыть в новом окне вместо окна приложения.

+0

Но это только как Окно над моим приложением, а не как одно окно –

+0

Что вы хотите в качестве конечного результата? вы хотите, чтобы пользовательская камера в вашем приложении или что-то другое? –

+0

Я использую камеру как barcodescanner. И когда он обнаруживает какой-либо штрих-код в камере, я получил штрих-код в качестве результата, и камера будет остановлена. –

Смежные вопросы