【问题标题】:How to dismiss view from UImagePickerController with custom button?如何使用自定义按钮从 UImagePickerController 中关闭视图?
【发布时间】:2015-02-10 17:02:02
【问题描述】:

我正在使用 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];
}

【问题讨论】:

  • 您是否尝试过使用选择器在完成按钮上设置 dissmissmodalviewcontroller 的操作
  • 您在下面的评论中发布了应用程序崩溃的消息,请发布崩溃日志,以便我们更好地了解问题所在。

标签: iphone button uiimagepickercontroller terminate


【解决方案1】:

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

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

在dismiss方法中

 -(void)dismiss
    {

    [self dismissmodalViewController];

    }

【讨论】:

  • 感谢您的帮助,但它不起作用。我已经在我的覆盖部分实现了第一行代码。该应用程序实际上在启动时崩溃。让我们忘记规范,如何使用完成按钮终止 UIImagePickerController 会话?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
相关资源
最近更新 更多