Принудительное использование ориентации LandScape без использования [[UIDevice currentDevice] setOrientation: UIInterfaceOrientationAnyOrientation] - PullRequest
4 голосов
/ 16 февраля 2012

У меня странная проблема, я не могу понять, как ее решить!Мое приложение поддерживает любой тип ориентации (книжная, альбомная и т. Д.), Но созданный мною новый раздел (вид) полезен только в альбомной ориентации.Поэтому я должен заставить мой новый вид загружаться в альбомной ориентации после нажатия кнопки или поворачивать ориентацию устройства при создании этого конкретного вида.

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

Имея много представлений, я использовал UIViewController в качестве «контейнера», так что я могу справиться с ними лучше.Я думаю, если использование этого может быть проблемой само по себе ... Я попытался повернуть представление с помощью CGTransform и "заблокировать" вращение с помощью BOOL внутри контейнера представления, это решило проблему размещения, поэтому представление отображается правильно, но когдаtextView становится первым, клавиатура отображается в портретном режиме.Вот почему ориентация устройства все еще портретная.

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

Спасибо за любую помощь, которую вы мне предоставите!

1 Ответ

16 голосов
/ 16 февраля 2012

Поместите этот код в viewWillAppear

UIViewController *viewController = [[UIViewController alloc] init];
[viewController setModalPresentationStyle:UIModalPresentationCurrentContext];
viewController.view.frame = CGRectZero;
[self presentModalViewController:viewController animated:NO];
[self dismissModalViewControllerAnimated:NO];
[viewController release];

Это повернёт новый контроллер вида в направлении устройства

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...