我的应用程序中有一个奇怪的行为。 为了拍照,我使用以下漂亮的标准代码来显示UIImagePickerController:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = NO;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:nil];
第一次点击调用此操作的按钮时,它完全正常。当我再次点击该按钮时,奇怪的行为开始了。 UIImagePickerController再次启动但它不再显示来自摄像机的输入。它显示了我拍摄的最后一张照片。
该州的更多细节:
更奇怪:它与我正在使用的iPad无关。创建一个新的示例应用程序,只有从上面调用代码的按钮一切都很好。
我认为它与应用程序的配置有关。因此,我检查了所有内容,但未找到可能导致此问题的任何差异。
提前感谢任何建议!
更新: 我实现了UIImagePickerControllerDelegate以解散UIImagePickerController。
答案 0 :(得分:0)
在阅读UIImagePickerController doc here上的Apple文档时,它指出“当用户点击按钮以选择新捕获或保存的图像或电影,或取消操作时,使用关闭图像选择器您的代理对象。对于新捕获的媒体,您的代表可以将其保存到设备上的相机胶卷。对于以前保存的媒体,您的代表可以根据您应用的目的使用图像数据。 “也许你需要实现UIImagePickerContriollerDelegate协议方法并正确地解除现有的UIImagePickerController对象。见UIImagePickerControllerDelegate
答案 1 :(得分:0)
我终于找到了问题:它是UIViewController上的一个类别,我在项目的其他地方使用过。当我用我的项目编译它时,UIImagePickerController表现得很奇怪。所以我想我以某种方式设法使用了一个方法名称,该名称也由UIImagePickerController在内部使用。它仍然让我感到困惑,因为根本没有在UIImagePickerController上使用该类别。