UIImagePickerController每隔一次启动就会显示错误的摄像头设备

时间:2012-02-29 17:46:32

标签: objective-c ios ipad uiimagepickercontroller

我有一个Root View Controller,我可以从中进入下一个场景。这个新的View Controller提供了一个UIImagePickerController并在viewDidLoad中启动时选择前置摄像头:

cameraUI.cameraDevice=UIImagePickerControllerCameraDeviceFront;

这样可行,因此选择并显示前置摄像头。我拍了一张照片,然后去了下一个场景。然后我退出并返回Root View Controller。我再次进入下一个场景,再次加载一个UIImagePickerController(当调试它再次进入viewDidLoad时,这样可行)。在viewDidLoad里面,它再次使用上面的代码选择前置摄像头。

BUT! UIImagePickerController现在只显示后置摄像头!如果我第三次回到根视图控制器并再次加载UIImagePickerController,现在它就像它应该显示前置摄像头。它第四次显示后置摄像头等等。

我调试了它,每次它都像预期的那样从上面跳到代码行,所以我不知道为什么每秒都会显示后置摄像头?

1 个答案:

答案 0 :(得分:3)

移动到下一个场景时,我没有释放UIImagePickerController对象 使用:

    [cameraUI dismissModalViewControllerAnimated:NO];
    [cameraUI.view removeFromSuperview];
    [cameraUI release];

最后一行解决了这个问题。 (我仍然没有得到这个,因为呈现UIImagePickerController的View Controller已经完全加载了)