0

我正在使用 Zbar 扫描仪 SDK,它可以让我读取条形码。现在默认版本在读取一个条形码后停止扫描并显示结果。我用自己的完成按钮制作了自己的 UIToolBar,因为我希望它扫描多次,只要用户单击我的 UIToolBar 上的“完成”按钮,所有这些都将终止。我已经制作了按钮,但是如何将操作添加到按钮?由于 pickerController 的参与和 Zbar SDK,这非常令人困惑。如何将叠加层中的 doneButton 链接到终止扫描的操作?

这是我设置完成按钮的叠加层。

-(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];
}
4

1 回答 1

1

尝试使用选择器在 doneButton 上设置 dissmissmodalviewcontroller 的操作

  [doneButton addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside];

在驳回方法中

 -(void)dismiss
    {

    [self dismissmodalViewController];

    }
于 2012-07-23T06:08:46.980 回答