2009-06-06 12 views
0

ルートコントローラではないビューコントローラで私の向きを変更できるという解決策を見つけるのに苦労しています。たとえば、ルートビューコントローラ、メインビューのメインビューコントローラ、およびフリップサイドビューのフリップサイドビューコントローラを持つユーティリティプロジェクトでは、ルートビューコントローラからの方向を制御できるのは唯一の場所です。メインまたはフリップサイドビューのいずれかにコードを実装することで、向きを制限または有効にすることはありません。ルートコントローラではないビューコントローラ内から方向を切り替える方法

私がしたいことは、メインビューの読み込みを横長にし、フリップサイドのビューを縦向きにすることです。これは可能ですか、メインビューとフリップサイドビューを切り替えると、別の向き設定でルートビューコントローラを何とか読み直す必要がありますか?

編集:明確にするために、私はメインビューを横長の向きにし、フリップサイドのピクチャを縦長に固定します。これらのビューは回転できません。 - ありがとう。

答えて

1

"メインウィンドウ" .mファイルに以下のメソッドを実装します。

-(BOOL)shouldAutorotateToInterfaceOrientation:UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); // or whatever orientation is needed 
} 

"flipside view" .mファイルで、次のメソッドを実装します。

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

アプリケーションデリゲートでまたはどこか他のあなたの起動プロセス中にあなたが起動時に景観へのインターフェイスの向きを設定するには、次のメソッドを呼び出すことができます。

[application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; // should match the first method above. 

・ホープ、このことができます。

乾杯 -

+0

デフォルトのユーティリティプロジェクトでコードを追加しましたが、基本的に同じ問題があります。ステータスバーは横長になります(実際には縦長ビューでも横長に留まります)が、私のメインビューはまだ肖像画になっています。メインビューコントローラまたはフリップサイドビューコントローラで方向コントロールをコメント解除すると、何も起こりません。ルートビューコントローラで方向コードをコメント解除すると、両方のビューが横長または縦長になります。 メインウィンドウを開いたときにメインビューを意味すると思います。 –

関連する問題