私はすでに既存のiPhoneアプリにzxingを統合しようとしています。私は、プロジェクトのダウンロードに同封されたScanTestの例を参照し、スキャナの構築と実行に成功しました。iPhone用のzxingを統合しているときのビューの管理
私の問題は、スキャナを組み込むプロジェクトのビューを管理することにあります。現在、スキャナ機能を必要とする既存のView Controller(VC-A)があります。 ZXingWidgetController
スキャナビューを起動するための新しいビューコントローラ(VC-B)を作成しました。今すぐスキャンテストサンプルにあるよう> VC-B-> presentModalViewController(ZXingWidgetController)
-
VC-A-> presentModalViewController(VC-B):だからフローは次のようになります。アプリケーションでは、スキャンが完了すると、ZXingWidgetControllerのビューを閉じるVC-BからdissmissModalViewControllerが呼び出されます。問題は私が何をしようとしていても、私は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のオーバーレイをカスタマイズしましたか?私はそれほど似たような問題は見つかっていないようです。