0

自動回転を実装しようとしましたが、アプリが私を聞いていません!

アプリには、3 つのビュー コントローラーを監視するタブ バー コントローラーがあります。タブ バーは、アプリ デリゲートでプログラムによって作成されます。 ビュー コントローラーには、次の標準的な単純なメソッドがあります。

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

アプリのデリゲートは次のようになります。

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:gameVC, settingsVC, helpVC, nil];
self.window.rootViewController = self.tabBarController;

さらに、ターゲット サマリー エリアでは、iPad と iPhone の両方の 4 つの向きをすべてアクティブにしています。

シミュレーターでは、どちらのデバイスでも回転は発生しません。何かが足りないようです。おそらくもう1つの設定が必要ですか?何か調子が悪い?ビューの回転に関連するプロジェクトには他に何もありません。

4

4 に答える 4

1

特別な目的で ViewController を使用し、それを各 View Controller に継承します。スーパーViewControllerでこれを追加します

  • (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ YES を返す; }

したがって、それらを自動回転させるために一度だけ行う必要があります

于 2012-11-26T06:02:09.507 に答える
1

私が考えることができるあなたの応答であなたが言わなかったように見える唯一のことは、あなたのinfo.plistの下でデバイスの向きを変更することです. 個人的な経験から、ターゲットの概要領域でサポートされているデバイスの向きをクリックしても、Info プロパティ リストで実際には変更されない可能性があることを知っています。次の手順を実行して、プロパティ リストで 4 つすべてが選択されていることを確認します。

  • Info.plist に移動します
  • サポートされているインターフェイスの向きとサポートされているインターフェイスの向き (iPad) の下を見てください。
  • 両方の下に 4 つの文字列があることを確認します: 縦 (下のホーム ボタン)、縦 (上のホーム ボタン)、横 (左のホーム ボタン)、横 (右のホーム ボタン)
于 2012-08-15T01:20:10.503 に答える
0

@Zack @AlexanderZats これは微妙でした。私はこのSOの回答を読んでいて、ここに来ました。 この2番目のリンクは、アプリが回転しない可能性があるさまざまな理由についての素晴らしい議論です. 最後の点が私の注意を引きました。案の定、私はそれをオーバーライドinitWithNibNameし、呼び出しsuperていませんでした。これは最終的に、VC がレスポンダー チェーンに含まれていなかったことを意味していると思います。アイデアや提案をくれたすべての人に心から感謝します!

于 2012-08-16T20:45:53.253 に答える
0

http://developer.apple.com/library/ios/#DOCUMENTATION/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/TabBarControllers.html#//apple_ref/doc/uid/TP40011313-CH3-SW26から

タブ バー コントローラーは既定で縦向きをサポートし、含まれるすべてのビュー コントローラーがそのような向きをサポートしない限り、横向きに回転しません。デバイスの向きが変わると、タブ バー コントローラーはビュー コントローラーの配列を照会します。それらのいずれかが方向をサポートしていない場合、タブ バー コントローラーはその方向を変更しません。

于 2012-08-15T07:37:28.267 に答える