В моем приложении у меня встроенный сканер SDbar SDK, в то время как сканирование обычно работает нормально, но мой случай несколько раз делал финишированиемедикой.Информация: метод делегата срабатывает дважды. Вот мой код, который находится в одном классе.Сканер zbar sdk не работает должным образом
-(void)scanProductBarCode
{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
reader.supportedOrientationsMask = ZBarOrientationMaskLandscape;
else
reader.supportedOrientationsMask = ZBarOrientationMaskPortrait;
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_UPCA config: ZBAR_CFG_ENABLE to: 1];
[scanner setSymbology: ZBAR_CODE39 config: ZBAR_CFG_ADD_CHECK to: 0];
}
#pragma mark - Scanner delegate methods
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
break;
barCodeString = [[NSString alloc] initWithString:symbol.data];
if(self.delegate)
[self.delegate getBarcodeString:barCodeString];
[reader dismissModalViewControllerAnimated:YES];
}
Смотрите этот снимок экрана:
На фоне сканер по-прежнему работает, как это в два раза встречающийся случай ..
Спасибо, но после добавления этого флага BOOL, метод делегата gerbarcodeString: стреляют только один раз. Но при повторном запуске дела метода didFinishPickingMediaInfo: делегировать, при первом сканировании штрих-кода выполняется и все же просмотр сканера не сбрасывается с приложения. См. Изображение, добавленное выше. – Ganapathy