我使用zbarSDK QR码阅读器http://zbar.sourceforge.net/iphone/sdkdoc/dismissViewControllerAnimated并没有消除使用ZbarSDK QR码阅读器
的SDK是非常伟大的,但我遇到了一个小问题。我需要用户在开始扫描之前可视化一个视图(包含有关如何扫描的信息),而不是按下一个使扫描开始(显示相机)的按钮,以及何时扫描qr码以查看另一个视图与特定的qr代码链接的东西。 我已经这样做了,但是当我开始扫描后在之后构建二维码,但是如果在开始扫描时qr代码是已经在视频相机视图中已经构造了,那么该方法就不行。
当我开始扫描我使用
[self presentModalViewController: reader
animated: YES];
显示视频摄像机和扫描QR码为此
-(IBAction)StartScan:(id) sender
{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.readerView.torchMode = 0;
ZBarImageScanner *scanner = reader.scanner;
// present and release the controller
[self presentModalViewController: reader
animated: YES];
[reader release];
}
。 然后当QR码已被扫描我这样做:
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
hiddenData=[NSString stringWithString:symbol.data];
[reader dismissViewControllerAnimated:YES completion:^{ NSLog(@"Test"); }];
[self performSegueWithIdentifier:@"aDettaglioOpera" sender:self];
}
驳回摄像机视图与
[reader dismissViewControllerAnimated:YES completion:^{ NSLog(@"Test"); }];
以及呈现链接到下列SEGUE的图。
现在一切顺利,如果一个点的相机到一个点没有qrcode,然后指向它qrcocde,而不是如果当我开始扫描我已经在相机的帧中的qr代码imagePickerController得到执行(我选中),但dismissViewControllerAnimated:YES不会消除任何东西,并且在“完成”(而不是正确执行并且nslogging“test”)之后不执行该块。
问题是什么? presentModalViewController没有足够的时间让dismissViewControllerAnimated起作用吗?如果问题是这个,我该如何避免它?
您是否在解雇时检查'reader'值?这是对的吗?你在使用ARC吗? – sergio
我该如何检查其价值?至今我试过NSLog(@“PRESENTED:%@”,[self presentedViewController]);并且在这两种情况下都有效地提供了一个ZBarReaderViewController ...我没有使用ARC,因为与另一个SDK有关的问题与ARV有一些问题,我无法解决。 –
哦,我忘了说,在有问题的情况下,如果我框架的另一件事情,而不是框架的qrcode解雇做它的工作 –