iOS:ZBarCode读取器无法在自定义UISegmentedControl上工作单击
我遵循这一点在iOS应用程序中实现了zbarcode阅读器。因为我使用的是定制的UISegmentedControl,相机应该在点击该段后立即启动,并开始扫描二维码。摄像头正在启动,但红线缺失,因此无法扫描二维码 我在日志中得到这个警告,其中提到iOS:ZBarCode读取器无法在自定义UISegmentedControl上工作单击,ios,zbar-sdk,Ios,Zbar Sdk,我遵循这一点在iOS应用程序中实现了zbarcode阅读器。因为我使用的是定制的UISegmentedControl,相机应该在点击该段后立即启动,并开始扫描二维码。摄像头正在启动,但红线缺失,因此无法扫描二维码 我在日志中得到这个警告,其中提到 Warning: Attempt to present <ZBarReaderViewController: 0x7befb50> on <UINavigationController: 0x7b6f950> while a p
Warning: Attempt to present <ZBarReaderViewController: 0x7befb50> on <UINavigationController: 0x7b6f950> while a presentation is in progress!
警告:在演示过程中尝试在上演示!
我在ScanViewController段的viewWill加载中编写了按钮逻辑。
使用Xcode 4.6并在iPad2中进行测试。
这是我的密码
- (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];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"Starting Camera to scan QR Code...");
// 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];
NSString *checkURL = self.resultText.text;
NSLog(@"Checking URL scanned from QR Code before passing to List :: %@", checkURL);
-(void)imagePickerController:(UIImagePickerController*)读卡器已使用信息完成PickingMediaWithInfo:(NSDictionary*)信息
{
//添加:获取解码结果
id结果=
[信息对象forkey:ZBarReaderControllerResults];
ZBarSymbol*符号=nil;
用于(结果中的符号)
//示例:只需抓取第一个条形码
打破
//示例:对条形码数据执行一些有用的操作
resultText.text=symbol.data;
//示例:对条形码图像执行一些有用的操作
结果图像=
[info objectForKey:UIImagePickerControllerOriginalImage];
//添加:关闭控制器(注意从*读卡器*!)
[reader dismissModalViewControllerAnimated:是];
}
-(无效)视图将显示:(BOOL)动画
{
[超级视图将显示:动画];
NSLog(@“启动摄像头扫描二维码…”);
//添加:提供一个条形码读取器,可从摄像头提要进行扫描
ZBarReaderViewController*读卡器=[ZBarReaderViewController新建];
reader.readerDelegate=self;
reader.supportedOrientationMask=zBaroOrientationMaskall;
ZBarImageScanner*scanner=reader.scanner;
//TODO:(可选)此处的附加读卡器配置
//示例:禁用很少使用的I2/5以提高性能
[扫描仪设置符号:ZBAR_I25]
配置:ZBAR_CFG_启用
至:0];
//显示并释放控制器
[自我呈现模式控制器:读卡器
动画:是];
NSString*checkURL=self.resultText.text;
NSLog(@“在传递到列表之前检查从二维码扫描的URL:%@”,检查URL);
将代码移动到
- (void) viewDidAppear:(BOOL) animate { }
而不是视图将出现
问题是您试图在视图出现之前显示ModalviewController。您好,如何解决您的问题problem@Deepesh我用自制的方法[self startCameraToScan]输入了代码在所选段以及viewDidLoad中。因此,在选项卡上调用此方法。因此,startCameraToScan将显示代码,而不是viewDidLoad