Intereting Posts
Горизонтальное исправление ориентации видео AVFoundation не завершено полностью 180deg rotate Ссылка на объект возвращает null (наследование класса iOS) Обновление приложения iOS Удаляет содержимое папки «Документы» вызов метода из NSThread Отслеживание конверсий приложений Google с быстрым NSInvalidArgumentException ', причина: «Невозможно проанализировать строку формата» userName, например% @ password, например% @ »' SDWebImage не работает с файлом памяти Firebase Что делают эти настройки в интерфейсе Builder? Невозможно импортировать ObjectMapper в Swift Facebook iOS SDK: сеанс недействителен на iPhone после выхода из Facebook с рабочего стола как добавить время в iOS4? Как заставить MFMailComposeViewController не показывать строку состояния? __strong квалификатор, используемый в проекте без ARC Озабоченность о раздражении Xcode Разница между этими двумя для петель в объективе c

Как получить статусBarOrientation при первом представлении

Как определить правильную ориентацию приложения на первом представлении? Мне нужно знать, поэтому я могу либо отображать портретное изображение, либо альбомное изображение в качестве фона.

[[UIDevice currentDevice] orientation] не работает должным образом, если iPad [[UIDevice currentDevice] orientation] на поверхности.

statusBarOrientation , похоже, не возвращает правильные результаты для первого загруженного представления. Я попытался получить ориентацию строки состояния в viewWillAppear и viewDidLoad и оба возвратили портрет даже в ландшафте.

Я подтвердил, что у меня есть [self.window makeKeyAndVisible] в приложении AppDelegate.m in - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions . Это возвращает только неправильную ориентацию строки состояния на первом контроллере представления.

Примечание. Я также попробовал interfaceOrientation UIViewController из UIViewController , объявление, которое все равно возвращает портрет независимо от того, что.

Любые идеи, как это исправить?

РЕДАКТИРОВАТЬ:

Я использую [[UIDevice currentDevice] orientation] чтобы определить, является ли она портретной или альбомной, но моя проблема обнаруживает, что на самом деле представляет вид, если UIDevice возвращает ориентацию плоской (не портретной или альбомной).

У многих приложений есть эта проблема. Если устройство плоское, то любая из ориентаций действительна.

Лучше всего использовать [[UIDevice currentDevice] orientation] чтобы узнать, насколько возможно ориентация для случаев, когда можно определить ориентацию. Но когда он будет плоским, это будет как раз то, что было последним.

Сколько раз вы видели, как люди всплывают над iPad, чтобы добиться оптимального ландшафтного подхода.

ПОНЯЛ!

Я смог сделать работу, используя

 - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 

Даже при просмотре нагрузки этот метод запускается, если ориентация не UIInterfaceOrientationPortrait к UIInterfaceOrientationPortrait .

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

РЕДАКТИРОВАТЬ:

Когда viewDidAppear запускается к тому времени, [self interfaceOrientation] имеет правильное значение. Поэтому, если вы можете подождать до этого метода, вы также можете получить его там.