0

行。所以我有一个实现 UIImagePickerControllerDelegate 的 ViewController。伟大的。我的选择器顶部还有一个覆盖视图。我在所述叠加层上有一个按钮,我想在上面调用 takePicture。

我的问题是,这是怎么做到的?takePicture 不是我需要自己写的东西吗?它是在 UIImagePickerController 中定义的,对吗?

选择器模态弹出很好,我可以通过相机看到图像,但是当我按下按钮拍照时,我遇到了问题。

我在按钮上设置了这个代码:

[button addTarget:self action:@selector(takePicture) forControlEvents:UIControlEventTouchUpInside];   

使用上述方法,我通常会收到 NSException 错误,但是当我从单独的方法调用 takePicture 时,它​​根本不会触发。

作为其中的一部分,我的选择器委托应该设置为显示选择器的叠加层还是视图控制器?

另外,我的叠加层和视图控制器是否应该在标题中实现选择器委托?

提前致谢。

4

1 回答 1

1

takePicture方法在UIImagePickerController对象上。现在,takePicture我认为您的按钮正在调用叠加层的视图控制器。(我无法确定,因为您没有发布该代码行所在的方法。)

所以应该是

[button addTarget:picker action:@selector(takePicture) forControlEvents:UIControlEventTouchUpInside];

显然,要使这项工作,代码需要将选择器变量设置为指向UIImagePickerController; 执行此操作的常用方法是将指向主视图控制器和/或图像选择器本身的指针存储在应用程序委托中。

只有一个类需要实现图像选择器委托;你可以决定你想要哪一个。

于 2009-12-17T04:25:58.963 回答