Я наткнулся на некоторый блокпост с чем-то, с чем, я надеюсь, кто-то здесь сможет мне помочь. Сначала я опишу «состояние игры», а затем, в чем заключается проблема, вот так;
- У меня есть серия контроллеров представления, которые связаны между собой навигационным контроллером (это прекрасно работает),
- Все эти контроллеры представления поддерживают только портретный режим (по проекту),
- В одном из контроллеров представления (фактически, в конце) пользователь может щелкнуть ячейку таблицы, чтобы открыть модальный контроллер представления (конечно, с использованием presentModalViewController (...))
- Этот контроллер модального вида поддерживает портретный и ландшафтный режимы (и это работает),
- Когда пользователь нажимает кнопку «Готово» на этом контроллере модального представления, мы, однако, выскакиваем и передаем управление обратно в родительский контроллер представления;
- Если пользователь находится в портретном режиме, когда он нажимает «Готово», то родительский элемент отображается нормально,
- Если пользователь находится в ландшафтном режиме, когда он нажимает «Готово», тогда родитель отображает полностью белый пустой экран (который покрывает весь экран). Это как если бы контроллер не знал, как визуализировать в альбомной ориентации, и просто не беспокоился.
Я бы хотел, чтобы этот родительский вид отображался в портретной ориентации независимо от ориентации телефона, когда пользователь нажимает кнопку «Готово».
В различных сообщениях на форуме предлагается использовать метод UIDevice 'setOrientation' (но это недокументировано и, по-видимому, наше приложение будет отклонено). Другое предложение заключалось в том, чтобы установить для statusBarOrientation значение портрета в методе viewWillAppear, но это не имело никакого эффекта.