バーコードを読み取れる Zbar スキャナー SDK を使用しています。現在、デフォルト バージョンでは、1 つのバーコードが読み取られるとスキャンが停止し、結果が表示されます。何度もスキャンしたいので、独自の完了ボタンを備えた独自の UIToolBar を作成しました。ユーザーが UIToolBar の「完了」ボタンをクリックすると、すべてが終了します。ボタンを作成しましたが、ボタンにアクションを追加するにはどうすればよいですか? pickerController の関与と Zbar SDK が原因で、かなり混乱しています。オーバーレイの doneButton を、スキャンを終了するアクションにリンクするにはどうすればよいですか?
これは、Done ボタンを設定したオーバーレイです。
-(UIView*)CommomOverlay {
UIToolbar *myToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 428, 320, 70)];
[myToolBar setBarStyle:UIBarStyleBlackTranslucent];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonTap:)];
[myToolBar setItems:[NSArray arrayWithObjects:doneButton, nil] animated:YES];
[FrameImg addSubview:myToolBar];
[view addSubview:FrameImg];
return view;
これは、バーコード スキャナー SDK の IPC セクションです。
-(void) imagePickerController: (UIImagePickerController*)
readerdidFinishPickingMediaWithInfo: (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
resultText.text = symbol.data;
// setup our custom overlay view for the camera
// ensure that our custom view's frame fits within the parent frame
// EXAMPLE: do something useful with the barcode image
resultImage.image =
[info objectForKey: UIImagePickerControllerOriginalImage];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
//Delete below in entirety for continuous scanning.
[reader dismissModalViewControllerAnimated: NO];
}