27

多くのView Controllerで構成されたアプリがあります...プロジェクトの概要で、サポートされている唯一のデバイスの向きとして縦向きを設定しました。

ただし、横向きにするとアプリがめちゃくちゃになります。

私の質問は、アプリのデリゲートなどを介して自動回転をグローバルに無効にする方法はありますか?

または、すべてのビュー コントローラーにアクセスして、「shouldAutorotateToInterfaceOrientation」メソッドを追加する必要がありますか?

それを何かに追加するのを見逃したくないだけです...

ありがとう!

4

7 に答える 7

75

Info.plistで、[サポートされているインターフェイスの向き]を展開し、横向きのアイテムを削除して、アプリケーションを縦向きモードでのみ実行できるようにします。

于 2012-10-26T12:50:31.377 に答える
25

現在、3 種類のデバイス方向キーがありinfo.plistます。

  1. サポートされているインターフェイスの向き (iPad)
  2. サポートされているインターフェイスの向き (iPhone)
  3. サポートされているインターフェースの向き

3 つ目は非ユニバーサル アプリ用で、上の 2 つ目は iPad と iPhone 用です。

あなたはそれらを試してみるべきです。

ここに画像の説明を入力

于 2015-04-15T07:47:10.443 に答える
14

shouldAutorotateUIViewControllerとメソッドで設定するのに苦労した後 supportedInterfaceOrientation、iOS6 で成功しなかったため、最も効果的なのはアプリ デリゲートで設定することであることがわかりました。

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskPortrait;
}

ただし、戻るUIInterfaceOrientationMaskPortraitUpsideDownとアプリがクラッシュしていました。私は何が間違っていたのかわからない!

于 2013-03-18T10:16:03.810 に答える
5

ルートView Controllerのメソッドで:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

'return NO' を設定します。

これはすべてのビューに対して行う必要があります。

于 2012-04-12T14:02:43.350 に答える
2

iPad をサポートしている場合は、横向きのチェックを外さないでください。App Store でアプリが Apple に受け入れられなくなります。

アプリが最初の画面を表示する前に回転しないようにするには、これを AppDelegate.m 内に配置します

この方法は、上記の iOS 7.1 で機能し、テストされています。

// G - fix for ipad.
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskPortrait;
}
于 2016-04-14T03:33:18.947 に答える
0

Haris Hussain の回答は、IOS 6 の時点で廃止されたようですが、回転を制限/有効化するための新しい方法が利用可能です。

UIViewController ヘッダーにリストされているメソッドは次のとおりです。

// New Autorotation support.
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0);
- (UIInterfaceOrientationMask)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0);
// Returns interface orientation masks.
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation NS_AVAILABLE_IOS(6_0);

すでに回転した状態でアプリを起動すると、shouldAutoRotate が機能しないように見えることに注意してください。

于 2015-10-16T09:25:48.380 に答える