2012-02-29 32 views
4

我有一个根视图控制器,可以从中进入下一个场景。这个新的视图控制器呈现的UIImagePickerController并选择前置摄像头启动里面viewDidLoad中:UIImagePickerController每次启动都会显示错误的摄像头设备

cameraUI.cameraDevice=UIImagePickerControllerCameraDeviceFront; 

这工作,所以frontcamera选择,并得到显示。我拍照,然后去下一个场景。然后我退出并返回到根视图控制器。我再次进入下一个场景,再次加载一个UIImagePickerController(当它再次进入viewDidLoad时,所以这个工作)。在viewDidLoad里面,再次用上面的代码选择前置摄像头。

但是! UIImagePickerController现在只显示后置摄像头!如果我第三次返回到根视图控制器并重新加载UIImagePickerController,现在它会像它应该那样显示前置摄像头。第四次显示后置摄像头等。

我调试过它,每次它跳到上面的代码行像预期的一样,所以我不明白为什么后面的摄像头每隔两次显示一次?

+0

如果你发布了更多的代码,也许涉及到相机的所有代码,这将是一件好事。你有没有在实际的相机设备上试过NSLog?只是为了确保它每次都被正确设置。也许可以在执行中进一步移动这条线。 – 2012-02-29 18:51:49

回答

3

我didn't释放的UIImagePickerController对象移动到下一个场景 使用时:

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

最后一行固定的问题。 (我还没有真正得到这个,因为提供了UIImagePickerController的视图控制器已经完全加载)

相关问题