2009-03-25 13 views
1

は、私は私のUIViewControllerでなぜ私のUITableViewは回転しませんか? Interface Builderの内

UIViewController 
-- View 
---- TableView 

を以下している私は、私はまた、IBにある他のビューコントローラを持って

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

を設定しています。私はここで何が欠けていますか?私がそれを回転させることができる唯一の方法は、私が変換メソッドを使用する場合です。

+0

自動回転がYESに設定されているUIViewControllerによって制御される*テーブルビュー*も*含む* UIViewですか? – Amagrammer

答えて

0

私はこれを試したところ、期待通りに動作します。あなたはもっと詳細を提供する必要があります、と私は思います。私の経験では、ビューが回転するのに失敗すると、それは、一部のビューコントローラがどこかでそうでないと言っているからです。すべてのビューコントローラがshouldAutorotateToInterfaceOrientationから適切な値を返すことを確認してください:

3

偶然、タブベースのアプリケーションでtableviewを使用していますか?あなたがいる場合は、タブバーコントローラのすべてのビューコントローラがランドスケープモードをサポートしている場合にのみ、ランドスケープモードをサポートするビューを取得できます。

その他の理由で、あなたのビューが横長モードをサポートしていない理由はありません。

1

問題は自動サイズ設定にあります。具体的には、Interface Builderで自動サイズ変更がクリックされていることを確認してから、サイズインスペクタで、テーブルビューのすべてのスーパービューにテーブルの上部、左、右に赤い矢印が埋め込まれていることを確認し、内部の矢印。

質問者がメインビューのサブビューに実際にテーブルビューを持っているのかどうか疑問に思っています。

    • サブビュー
      • テーブルビュー

      • メインビュー:私は、ビュー階層の1つの上のレベル深いテーブルビューのために、この動作を参照してください

    デフォルトでは、メインビューには自動サイズ調整の矢印が正しく設定されていますが、追加のビューを追加した場合は表示されません。

    複数のビューコントローラで問題が発生したことに関する質問に対して:UIViewControllerはUIViewのデリゲートではありません。実際には、イベントの連鎖が逆のように見えます。まず、システムはオートローテーションを見て、UIViewControllerにそのことを伝えます。 UIViewControllerのshouldAutoresizeがyesを返す場合、UIViewControllerはメインビューのサイズを変更します。メインビューのサイズ変更により、サブビューが正しく設定されていると自動的にサブビューのサイズが変更されます。

    Apple docsによると、ビューのさまざまな部分を制御する複数のView Controller(たとえば、メインビューのサブビューにあるテーブルビュー用の別個のTableviewコントローラ)は、イベントチェーンと混乱しているので - あなたはそれがここでどのようになるかを見ることができます。それが役に立つかどうかわからない。

  • 0

    ストーリーボードを使用している場合、VCにはUITableviewが含まれています。シーンにAutoLayoutがチェックされていないことを確認してください。

    関連する問題