我正在嘗試將zxing集成到我現有的iPhone應用程序中。我已經提到了項目下載中包含的ScanTest示例,併成功構建並運行了掃描程序。在爲iPhone集成zxing時管理視圖
我的問題在於管理項目的意見,以納入掃描儀。目前我有一個已經存在的視圖控制器(VC-A),它需要掃描器的能力。我創建了一個新的視圖控制器(VC-B)來啓動ZXingWidgetController
掃描儀視圖。因此流程如下所示:
VC-A-> presentModalViewController(VC-B) - > VC-B-> presentModalViewController(ZXingWidgetController)
現在,作爲是ScanTest樣品中應用程序,當掃描完成時,將從VC-B調用dissmissModalViewController,該操作將取消ZXingWidgetController的視圖。問題出在我嘗試的方式,我無法解僱VC-B回到VC-A。當掃描完成/取消時,我創建了一組委託方法來通知VC-A。我使用這些方法獲取掃描數據,但無法駁回VC-B的觀點。
我不希望我的修改已經存在的視圖控制器VC-A,因此我無法直接在其合併ZXingWidgetController,丟棄VC-B完全(因爲它需要做VC-A一.mm文件) 。
編輯: 現在我完全消除了ZXingWidgetController的模態。對VC-B
//Create custom overlay
OverlayView *scannerView = [[OverlayView alloc]initWithFrame:CGRectMake(27, 107, 267, 253) cancelEnabled:NO oneDMode:NO];
scannerView.displayedMessage = nil;
widController = [[ZXingWidgetController alloc]init ];
//set the overlay of widController
[widController setOverlayView:scannerView];
QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init];
NSSet *readers = [[NSSet alloc ] initWithObjects:qrcodeReader,nil];
[qrcodeReader release];
widController.readers = readers;
widController.delegate = self;
[readers release];
[scannerView release];
NSBundle *mainBundle = [NSBundle mainBundle];
widController.soundToPlay = [NSURL fileURLWithPath:[mainBundle pathForResource:@"beep-beep" ofType:@"aiff"] isDirectory:NO];
//Add scanner to the view
[self.view addSubview:widController.view];
在viewDidLoad
使用此代碼現在ZXingWidgetController的相機視圖是不可見的。有沒有人爲Zxing定製覆蓋層?我似乎沒有發現任何類似的問題。