UIDEVICE ориентация

Привет всем, у меня есть заставка, которую я хочу показать в ландшафтном режиме, а все остальные экраны в режиме портрета. Мой корневой контроллер представления действует как заставка, я пишу этот код в методе viewdidload

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight]; 

Но этот код не работает и показывает, что UIdevice может не отвечать на setorentation. Пожалуйста, укажите мне, как я могу изменить orentation только для первого заставки, а другой экран должен быть в режиме potrait

2 ответа

Решение

UIDeviceOrientation относится к физической ориентации устройства, тогда как UIInterfaceOrientation относится к ориентации пользовательского интерфейса. Вы не можете изменить физическую ориентацию устройства, но вы можете изменить отображение строки состояния с помощью [UIApplication sharedApplication].statusBarOrientation

Разве у вас не может быть заставки, которая отображается сбоку?

Пользователь будет интерпретировать это как "ландшафтный" всплеск и соответственно скорректировать, действительно ли ваше приложение так считает. Просто не забудьте вернуться NO в shouldAutorotateToInterfaceOrientation: поэтому он не поворачивается, когда пользователь поворачивает его.

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

Если вы действительно хотите, однако, вы можете использовать setStatusBarOrientation: animated: на UIApplication форсировать ориентацию.

Другие вопросы по тегам