0

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

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

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

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

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

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

Я думаю, что this page может иметь представление, когда говорится: «Самое заметное изменение [в 3.0]. Я вижу, что контроллер модального представления всегда будет использовать рамку приложения, а не рамку контроллера родительского представления». Однако я не понимаю, что это значит.

Любая помощь очень ценится. Благодаря!

+0

'iOS 3.x' больше не поддерживается, этот вопрос, возможно, потребуется закрыть. – darvids0n

ответ

0

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

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

Вопрос: что произойдет, если вы подберете модальный вид, а THEN поверните телефон?

+0

Хороший вопрос. Если я подниму модальный вид, а THEN поверните телефон, модальное изображение прекрасно переключится в альбомный режим. – niels

0

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