0

タブバーコントローラーとナビゲーションコントローラーを持つアプリケーションのさまざまなviewControllerで、縦向きから横向き、またはその逆を行う方法...

やった

- (void)viewWillAppear:(BOOL)animated
{
  [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

 }

ビューで OrientationLandscapeRight が必要な場合

- (void)viewWillAppear:(BOOL)animated
{
   [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

}

ポートレートが欲しいとき..

動作していますが、ナビゲーションバーが向きに応じて調整されていません。

4

2 に答える 2

0

を使ってみてください。

 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
于 2012-10-15T16:20:13.547 に答える
0

このメソッドは非公開であり、Apple はアプリを拒否し、公開できないため、このメソッドを呼び出すべきではありません。

orientation

デバイスの物理的な向きを返します。(読み取り専用)

@property(nonatomic, readonly) UIDeviceOrientation orientation

コントローラーでサポートされている特定の向きを設定したい場合は、コントローラーにいくつかのメソッドを実装する必要があります。

Apple ドキュメントから: UIViewController リファレンス

ビューの回転の処理 iOS 6 では、アプリは、アプリの Info.plist ファイルで定義されたインターフェイスの向きをサポートします。View Controller は、 supportedInterfaceOrientations メソッドをオーバーライドして、サポートされている向きのリストを制限できます。通常、システムは、ウィンドウのルート ビュー コントローラー、または画面全体に表示されるビュー コントローラーでのみ、このメソッドを呼び出します。子View Controllerは、親View Controllerによって提供されたウィンドウの一部を使用し、どの回転がサポートされているかに関する決定に直接参加しなくなりました。アプリの方向マスクとビュー コントローラーの方向マスクの交点は、ビュー コントローラーを回転できる方向を決定するために使用されます。

特定の向きで全画面表示することを目的としたView ControllerのpreferredInterfaceOrientationForPresentationをオーバーライドできます。

iOS 5 以前では、UIViewController クラスはビューを縦向きモードでのみ表示します。追加の方向をサポートするには、shouldAutorotateToInterfaceOrientation: メソッドをオーバーライドし、サブクラスがサポートする方向に対して YES を返す必要があります。ビューの自動サイズ変更プロパティが正しく構成されている場合は、それだけで十分です。ただし、UIViewController クラスは、必要に応じて追加の動作を実装するための追加のフックを提供します。一般に、View Controller を子 View Controller として使用する場合は、すべてのインターフェイスの向きをサポートする必要があります。

表示されているビュー コントローラーの回転が発生すると、回転中に willRotateToInterfaceOrientation:duration:、willAnimateRotationToInterfaceOrientation:duration:、および didRotateFromInterfaceOrientation: メソッドが呼び出されます。viewWillLayoutSubviews メソッドは、ビューがその親によってサイズ変更および配置された後にも呼び出されます。向きの変更が発生したときにView Controllerが表示されていない場合、回転メソッドは呼び出されません。ただし、viewWillLayoutSubviews メソッドは、ビューが表示されるときに呼び出されます。このメソッドの実装では、statusBarOrientation メソッドを呼び出して、デバイスの向きを判断できます。

于 2012-10-15T16:20:53.343 に答える