UIImagePickerController отображает неправильное устройство камеры при каждом втором запуске - PullRequest
4 голосов
/ 29 февраля 2012

У меня есть Root View Controller, из которого я перехожу к следующей сцене.Этот новый View Controller представляет UIImagePickerController и выбирает фронтальную камеру при запуске внутри viewDidLoad:

cameraUI.cameraDevice=UIImagePickerControllerCameraDeviceFront;

Это работает, поэтому фронтальная камера выбирается и отображается.Я делаю снимок и перехожу к следующей сцене.Затем я ухожу и возвращаюсь к Root View Controller.Я снова перехожу к следующей сцене, которая снова загружает UIImagePickerController (при отладке он снова переходит в viewDidLoad, так что это работает).Внутри viewDidLoad он снова выбирает фронтальную камеру с кодом сверху.

НО!UIImagePickerController теперь показывает только заднюю камеру!Если я в третий раз вернусь к контроллеру корневого представления и снова загрузлю UIImagePickerController, теперь он показывает фронтальную камеру, как и должно быть.В четвертый раз он показывает заднюю камеру и т. Д.

Я отлаживал его, и каждый раз, когда он переходил на кодовую строку сверху, как ожидалось, поэтому я не понимаю, почему задняя камера отображается каждый второй раз?

1 Ответ

3 голосов
/ 05 марта 2012

Я не выпустил объект UIImagePickerController при переходе к следующей сцене Использование:

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

Последняя строка исправила проблему. (Я до сих пор не понимаю, потому что View Controller, который представлял UIImagePickerController, был снова полностью загружен)

...