Ios zbar中的取消按钮操作显示空白视图
我正在iOS应用程序中使用选项卡栏。当我点击“扫描”选项卡时,我调用委托方法立即在“扫描”选项卡上启动相机。当我启动相机扫描QR代码和点击取消按钮扫描之前,我得到的空白视图。相机关闭时如何显示视图Ios zbar中的取消按钮操作显示空白视图,ios,zbar-sdk,Ios,Zbar Sdk,我正在iOS应用程序中使用选项卡栏。当我点击“扫描”选项卡时,我调用委托方法立即在“扫描”选项卡上启动相机。当我启动相机扫描QR代码和点击取消按钮扫描之前,我得到的空白视图。相机关闭时如何显示视图 - (void) openCameraScanner { ZBarReaderViewController *reader = [[ZBarReaderViewController alloc] init]; reader.readerDelegate = self; read
- (void) openCameraScanner
{
ZBarReaderViewController *reader = [[ZBarReaderViewController alloc] init];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
reader.showsZBarControls = YES;
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
[self presentViewController:reader animated:YES completion:nil];
reader.showsZBarControls = YES;
//reader.cameraOverlayView = [self commonOverlay];
}
- (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
//resultsView.text = symbol.data;
NSString *urlString = symbol.data;
NSURL *url = [NSURL URLWithString:urlString];
NSLog(@"Query after scan = %@", [url query]);
//Extract id from URL which is there in QR Code --- start
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
for(NSString *param in [urlString componentsSeparatedByString:@"&"])
{
NSArray *elements = [param componentsSeparatedByString:@"="];
if([elements count]<2)
continue;
[dictionary setObject:[elements objectAtIndex:1] forKey:[elements objectAtIndex:0]];
NSLog(@"value is == %@", [elements objectAtIndex:1]);
//Extract id from URL which is there in QR Code --- end
if([[elements objectAtIndex:1] intValue])
{
NSUserDefaults *defaultsForAsk = [NSUserDefaults standardUserDefaults];
idToAsk = [NSString stringWithFormat:@"%d",[[elements objectAtIndex:1] intValue]];
[defaultsForAsk setObject:idToAsk forKey:@"IDTOASKVIEW"];
flagToShowView = YES;
listViewCntrl.getFlag = flagToShowView;
[self viewDidLoadForDynamicFields];
}
else if([elements objectAtIndex:1] == [NSNull null])
{
[reader dismissViewControllerAnimated:YES completion:Nil];
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Invalid QR Code scanned" message:@"Please scan Collaborator's QR Code" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[message show];
}
}
image.image =
[info objectForKey: UIImagePickerControllerOriginalImage];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
//[reader dismissViewControllerAnimated:YES completion:nil];
[reader dismissViewControllerAnimated:YES completion:Nil];
}
-(无效)openCameraScanner
{
ZBarReaderViewController*读卡器=[[ZBarReaderViewController alloc]init];
reader.readerDelegate=self;
reader.supportedOrientationMask=zBaroOrientationMaskall;
reader.showsZBarControls=是;
ZBarImageScanner*scanner=reader.scanner;
[扫描仪设置符号:ZBAR_I25]
配置:ZBAR_CFG_启用
至:0];
[自我呈现视图控制器:读卡器动画:是完成:无];
reader.showsZBarControls=是;
//reader.cameraOverlayView=[self commonOverlay];
}
-(无效)imagePickerController:(UIImagePickerController*)读卡器
didFinishPickingMediaWithInfo:(NSDictionary*)信息
{
//添加:获取解码结果
id结果=
[信息对象forkey:ZBarReaderControllerResults];
ZBarSymbol*符号=nil;
用于(结果中的符号)
//示例:只需抓取第一个条形码
打破
//示例:对条形码数据执行一些有用的操作
//resultsView.text=symbol.data;
NSString*urlString=symbol.data;
NSURL*url=[NSURL URLWithString:urlString];
NSLog(@“扫描后查询=%@,[url查询]);
//从QR码中的URL提取id---开始
NSMutableDictionary*dictionary=[[NSMutableDictionary alloc]init];
对于(在[urlString componentsSeparatedByString:@“&”]中的NSString*参数)
{
NSArray*元素=[param componentsSeparatedByString:@“=”];
如果([elements count]您可以使用-(void)ViewWillDisplay:(BOOL)ViewController类的动画方法重新显示视图。从何处显示Zbar扫描视图控制器?从视图控制器或子类tabbar控制器?我添加了[self-openCameraScanner]在viewDidLoad中..我还调用了openCameraScanner in ViewWillDisplay和ViewDidDisplay,但这并没有解决问题。您是否能够在设备中启动摄像头,但在关闭读卡器时遇到问题?正确吗?@Jailanihabeb yes..按取消按钮会显示一个空白视图,而不是nib。这可能是因为dismissModalViewController已清除润滑,dismissViewControllerAnimated正在创建此问题..?。可能是…这可能是因为我更改了IOS7的弃用函数。这并不能解决此问题。在我点击zbar相机的“取消”按钮后,我得到的是一个空白视图,而不是xib nib视图