UIImagePickerController出现但摄像头无法在iOS 5上启动

我有一个应用程序,我提出了一个源类型为UIImagePickerControllerSourceTypeCamera 。 一切正常,除非我离开应用程序并返回(启用多任务处理以便应用程序返回到它停止的位置)并再次呈现UIImagePickerController 。 它出现在屏幕上,但相机从未显示,相机显示的动画永远不会发生,这是一个截图: 截图

如果我按下取消并再次出现UIImagePickerController ,相机将显示正常。 所以这个问题发生的唯一时间是我第一次在回到应用程序后呈现UIImagePickerController 。 任何人都知道为什么会这样吗? 我正在为iOS 5编写代码

我正在使用以下内容呈现UIImagePickerController

 [self presentViewController:capturePhotoPicker animated:YES completion:nil]; 

并解雇它:

 [self dismissViewControllerAnimated:YES completion:nil]; 

我每次呈现它时都使用相同的UIImagePickerController对象

我有完全相同的问题,然后意识到我没有在呈现它之后发布UIImagePickerController 。 在离开并返回应用程序后,相机现在可以首次正常工作。

所以这是我的确切代码:

 UIImagePickerController *takePhotoController = [[UIImagePickerController alloc] init]; takePhotoController.sourceType = UIImagePickerControllerSourceTypeCamera; takePhotoController.delegate = self; [self presentModalViewController:takePhotoController animated:YES]; [takePhotoController release]; 

这是你可以花费多年的问题之一,解决方案并不那么明显(好吧,这不是我),所以我希望这能帮助一些人!

如果您将 – (void)viewDidLoad更改为 – (void)viewDidAppear:(BOOL)动画,它可以解决问题。 过去两周我一直试图解决这个问题