2012-02-29 57 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的視圖控制器已經完全加載)

相關問題