重複の可能性:
iPhoneまたはiPadのランドスケープモードのみ
全体を通して横向きになりたいiPad専用アプリを作っています。
私はiOSプログラミングに非常に慣れておらず、インターフェイスを作成するためにStoryBoardメソッドを使用しています。
アプリを最初にセットアップしたとき、単一のビューを選択し、ボタンをクリックして横向きのみにしました。横向きで開始するだけで、ユーザーが手動で回転するのを妨げることはないことがわかりました。
だから、私は私がしなければならなかったことがわかりました:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if (interfaceOrientation == UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight)
{
return YES;
}
return NO;
}
ユーザーが手動で回転させないようにするため。
これで、ナビゲーションコントローラーと、ルートビューコントローラーとして設定した通常のビューを作成しました。また、そのビュー内に1つのボタンを追加しました。
私の問題は、私のアプリが最初の起動時にのみ横向きに見える(文字通り横向きに点滅する)が、その後はそのナビゲーションコントローラーのように見えるものだけが縦向きになることです。
また、ストーリーボードインターフェイス内のナビゲーションコントローラーと最初のビューコントローラーの両方に[方向:横]が選択されていることもわかりました。
デバイスを横向きに回転させても、アプリは回転しません。すべての設定が横向きのみであるにもかかわらず、縦向きで動かなくなっているようです。
アプリを現在の縦向きの状態ではなく横向きのみにするにはどうすればよいですか?
編集:私は実際に自分の解決策を見つけました。
ナビゲーションコントローラーにリンクされていたビューが、横向きのみのコードを設定していたクラスファイルにリンクされていないように見えます。
ストーリーボードインターフェイスでViewControllerを選択し、右側のサイドバーにある[Show Identity Inspector]ボタンをクリックして、クラスをViewControllerファイルの名前として設定するだけでした。コードは次のとおりです。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
だった。
つまり、私のViewControllerはViewControllerクラスファイルにリンクされていませんでした。