私はこの投稿とは逆の問題を抱えているようです:
有料アプリを Apple に提出したとき、XCode により、テスト デバイスで iOS 6 に更新されました。XCode の GUI を使用して、アプリを iPhone では縦向きモードでのみ表示し、iPad では横向きモードでのみ表示するように設定しました。これは、iOS 6 の iPhone と iPad でうまく機能します。しかし、iOS 5 では、iPad はアプリを縦向きに回転させ、私のボタンをあるべきではないレターボックスのような黒い領域に表示し、繰り返しクラッシュすることを許している。
ナビゲーション コントローラーとストーリーボードを使用しています。
shouldAutorotateToInterfaceOrientation が iOS 6 で非推奨になっていることは知っていますが、iOS 5 でも呼び出す必要があると考えて、これを試しました。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
if ((UIDeviceOrientationIsLandscape(UIDeviceOrientationLandscapeLeft))||(UIDeviceOrientationIsLandscape(UIDeviceOrientationLandscapeRight))) {
return YES;
}
else return NO;
}
else
{
if ((UIDeviceOrientationIsLandscape(UIDeviceOrientationPortrait))||(UIDeviceOrientationIsLandscape(UIDeviceOrientationPortraitUpsideDown))) {
return YES;
}
else return NO; }
// Return YES for supported orientations
}
上記のコードは何もしていないようです。私はそれを各View Controllerに入れています。ナビゲーションコントローラーに実際に配置する必要があるようですが、グラフィカルに設定したため、その方法がわかりません。ナビゲーション コントローラーをサブクラス化し、コードですべてを実行する必要がありますか? これにはストーリーボード設定を使用する方法が必要です。
(注:私はAutoLayoutを使用しておらず、明らかに気に入らないソフトウェアを含めているいくつかの古いコンポーネントのために使用できません。)
何が原因でしょうか? あまりにも多くの人がアプリを購入して文句を言う前に修正したいと思います! 前もって感謝します...