presentModalViewController для UIImagePicker не работает в ландшафтном режиме для iPhone 3.0 - PullRequest
0 голосов
/ 02 августа 2009

Прежде всего, мой код не сложен - на самом деле это всего лишь две примеры программ из «Начала разработки для iPhone: изучение iPhone SDK», объединенные в одну программу. Я взял приложение ViewSwitcher, которое переключается между синим и желтым видом, и заменил YellowViewController на CameraViewController из приложения камеры.

У меня всего три ViewControllers. SwitchViewController просто переключается между BlueViewController и CameraViewController.

Внутри CameraViewController я пытаюсь использовать UIImagePickerController для выбора изображения. Средство выбора представлено с presentModalViewController. Подвох в том, что я хочу сделать это в альбомной ориентации.

Все работает нормально под 2.2.1, и все отлично работает в 3.0 в портретном режиме.

В 3.0 при альбомной ориентации, однако, вещи ломаются. Если я устанавливаю SwitchViewController в альбомную ориентацию, мой экран становится белым, когда я пытаюсь представить средство выбора. Если я поверну iPhone несколько раз, я смогу увидеть угол сборщика, который, по-видимому, отображался за кадром.

Если я установлю CameraViewController в альбомную ориентацию, средство выбора вообще не появится.

Я думаю, эта страница может иметь подсказку, когда она говорит: «Наиболее заметное изменение [в 3.0], которое я вижу, заключается в том, что модальный контроллер представления всегда будет использовать фрейм приложения вместо родительского контроллера представления. Рамка." Я не совсем понимаю, что это значит.

Любая помощь очень ценится. Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 декабря 2009

Вы, должно быть, использовали addSubview в родительском контроллере представления, попробуйте использовать presentModalViewController:.

0 голосов
/ 02 августа 2009

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

Не уверен, действительно ли это поможет решить вашу проблему.

Вопрос - что произойдет, если вы откроете модальное представление и ТОГДА поверните телефон?

...