【发布时间】:2014-05-20 09:03:28
【问题描述】:
在我的代码中,我初始化ZBarReaderViewController 以进行二维码扫描。
我需要检测用户何时退出 QR 扫描 进程而不扫描任何二维码。
有什么方法可以知道用户何时退出该进程(通过单击视图中的取消按钮)并在 ZBarReaderViewController 被解雇后立即执行某些操作?
提前谢谢你。任何信息都非常感谢!
下面是我通过点击按钮触发二维码扫描过程的代码。
-(IBAction)nextBtn:(id)sender{
NSLog(@"trigger QR CODE");
if(!reader)
{
reader = [[ZBarReaderViewController alloc]init];
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];
UIView * infoButton = [[[[[reader.view.subviews objectAtIndex:2] subviews] objectAtIndex:0] subviews] objectAtIndex:3];
[infoButton setHidden:YES];
}
// present and release the controller
[self.view addSubview:spinner];
[self.view setUserInteractionEnabled:NO];
[spinner startAnimating];
[self presentViewController:reader animated:YES completion:NULL];
}
这是我在用户扫描二维码时捕获二维码的方式。
- (void) imagePickerController: (UIImagePickerController*) imageReader
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;
NSString *receiptData = [NSString stringWithFormat:@"%@@-!-@%@", amountLabel.text, receiptLabel.text];
isClosed = YES;
NSLog(@"Completion");
[reader dismissViewControllerAnimated:YES completion:^{
[self BPUpdateTokenCollection:receiptData qrData:symbol.data];
[reader.readerView stop];
for(UIView *subViews in reader.view.subviews)
[subViews removeFromSuperview];
[reader.view removeFromSuperview];
reader.view = nil;
reader = nil;
}];
}
【问题讨论】:
-
如果只能在iOS7上部署,值得一提的是,iOS最新版本包含条形码/二维码检测API,易于集成且非常可靠。如果你不能,还有另一个库是 zxing github.com/TheLevelUp/ZXingObjC 的用户友好包装器
-
目前我的目标是 iOS 7 及更高版本。所以基本上这将是实现 QR 扫描仪的一种很好的替代方法。感谢您的信息
-
一个小教程,了解如何实现它shinobicontrols.com/blog/posts/2013/10/11/…
标签: ios objective-c qr-code zbar-sdk zbar