質問

私は、メインウィンドウに2つのサブビューを持っているiPhoneアプリケーションを構築しようとしています。各ビューには、それに関連付けられた独自ののUIViewControllerのサブクラスを持っています。また、各コントローラの実装内で、私は次のメソッドを追加しました:

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

このように、私は、ビューの両方が向きの変化に対応するために期待されます。しかし、このケースではありません。向きにアプリのメインウィンドウが応答に追加し、の最初ののビューのみ。

- (だけ一度に私は順序を入れ替える場合ビューは、換言すれば他の唯一のビュー応答次いで、追加され、いずれかの動作します。)

これはなぜでしょうか?それは複数のビューの向きの変更を処理することはできませんか?

ありがとうございます。

EDITます:

:私はここに私の解決策をコピーしていますので、他の誰かが、この質問を持っていました

私は「... shouldAutoRotate」ルートビューと方法とルートビューコントローラを提供することによって、この問題に対処することができましたし、ルートビューのサブビューとしての私の他のビューを追加します。サブビューは、自動回転動作を継承、およびそれらに関連するビューコントローラは、「shouldAutoRotate ...」

を上書きする必要はありません
役に立ちましたか?

解決 2

最後にここに私の解決策を投稿しようとしてます:

基本的には、「ルート」のUIViewControllerを持つに降りてきました。この中で、私は方法があります:

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

また、私はこのルートUIViewContollerのUIViewのサブビューへと自動回転したかったビューを追加しました。これらのサブビューは、ビューコントローラを持っていますが、のないのオーバーライドshouldAutorotateToInterfaceOrientationを行います。実際には、これらのビューコントローラにこのメソッドを追加することは全く効果がないようです。唯一のルートビューcontollerのshouldAutorotateToInterfaceOrientationが動作しているようですし、すべてのサブビューが適切に回転させます。

他のヒント

あなたが持っているすべての3つのコントローラ上のshouldAutorotateToInterfaceOrientationメソッドをオーバーライドする必要があります。

あなたのViewControllerの見解

の両方が含まれているビュー、クラスでこのメソッドを実装しようとすることができます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top