複数のビューコントローラとの方向性を管理することができません。
-
21-09-2019 - |
質問
私は、メインウィンドウに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の見解
の両方が含まれているビュー、クラスでこのメソッドを実装しようとすることができます