2012-04-05 14 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"); 
    } 
} 

しかし、それは常に「ポートレート」を返します。私は自分の.plistで利用可能なすべての4つの方向性を持っていると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

ありがとう!私は後でこの行動を行う時間を見つけました。 –