Отображение UIImagePickerController в другом UIView - PullRequest
3 голосов
/ 19 ноября 2009

Последние пару месяцев я довольно интенсивно работал с UIImagePickerController, особенно с новыми возможностями в OS3.1 и более новыми для наложения видов поверх вида камеры. Это сработало просто отлично.

Однако в настоящее время я работаю над проектом, в котором я хотел бы иметь возможность отображать вид с камеры UIImagePickerController в существующем виде. По сути, полная противоположность тому, что я сейчас делаю.

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

Мне удалось добавить UIImagePickerController в представление окна, а также представить его модально, но мне не повезло, добавив его в качестве subView.

например:

[window addSubview:camera.view];
[self presentModalViewController:camera animated:YES];

Ответы [ 3 ]

7 голосов
/ 03 июня 2010

Все, что вам нужно сделать, это вызвать viewWillAppear и viewDidAppear.

Вот пример, где _pickerController является экземпляром UIImagePickerController:

[self.view addSubview:_pickerController.view];
[_pickerController viewWillAppear:YES];
[_pickerController viewDidAppear:YES];
2 голосов
/ 19 ноября 2009

Вызовите viewWillAppear: ДА на контроллере средства выбора изображений после добавления его представления к вашему представлению. Пропустить модальное представление контроллера business.

0 голосов
/ 19 ноября 2009

Я не думаю, что API обеспечивает прямой доступ к фактическому представлению UIImagePickerController. Класс на самом деле является подклассом UINavigationController, поэтому я не думаю, что он сам имеет фактическое представление, а скорее управляет вызовом его субконтроллеров и их представлениями.

Когда вы вызываете UIImagePickerController модально, он не добавляет представления, которыми он управляет, как подпредставления к окну (или любому другому представлению). Это то, что означает модальное представление. Он представляет представление «на стороне» иерархии представлений.

Даже если бы вы могли взломать это вместе, я думаю, что Apple отвергнет это как не являющееся частью API и за нарушение HIG.

...