2012-04-05 3 views
3

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

Похоже, что лучший способ сделать это путем обнаружения statusBarOrientation:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSLog(@"View Loads"); 

    if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft 
     || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) { 
     NSLog(@"This is Landscape"); 
    } else { 
     NSLog(@"This is Portrait"); 
    } 
} 

Но он всегда возвращает «Портрет». У меня есть все 4 направления доступны в моем .plist и shouldAutorotateToInterfaceOrientation набор, а также:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { 
     return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || 
       interfaceOrientation == UIInterfaceOrientationLandscapeRight || 
       interfaceOrientation == UIInterfaceOrientationPortrait);   
     } else { 
     return (interfaceOrientation == UIInterfaceOrientationPortrait); 
    } 
} 

Кто-нибудь есть какие-либо другие советы? Заранее спасибо!

+0

Ваше приложение всегда отображается в портрете, независимо от ориентации устройства? – MusiGenesis

+0

Нет. Мое приложение может поворачиваться в любом направлении, кроме Портрет вверх ногами. –

ответ

4

Приложения iPad всегда запускаются в портретном режиме, независимо от фактической ориентации устройства (затем они сразу же поворачиваются в альбомное, если это устройство включено). Если вы проверите ориентацию строки состояния позже в жизненном цикле программы с тем же кодом, вы увидите, что она возвращает фактическую ориентацию.

+0

Спасибо! Я нашел более позднее время, чтобы сделать это. –

Смежные вопросы