1

私は、独自のビューコントローラーを持つ3つの異なるビューを持つタブバーアプリケーションを持っています。

タブバーコードには、回転を処理するためにこれがあります。

#import "RotatingTabBarController.h"

@implementation RotatingTabBarController

    // Override to allow orientations other than the default portrait orientation.
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

      return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
 }
@end

次に、デバイスの向きに応じて回転させたい2番目のビューコントローラーで:

// Override to allow orientations other than the default portrait orientation.
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

   return YES;
 }

そして、回転させたくない他の2つのビューについては、このメソッドを設定しています。

// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 // Return YES for supported orientations
 return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

問題:これは、ビュー1とビュー3で、デバイスを回転させたときに縦向きモードのままで正常に機能します。ビュー 2 で横向きに回転すると、ビューは期待どおりになり、横向きに回転します。ただし、ビュー 2 の横向きモードでビュー 1 またはビュー 3 タブをクリックすると、ビュー 1 とビュー 3 は横向きモードになります。

ビュー 2 が横向きに回転しても、強制的に縦向きにする方法がわかりません。

これを行う方法を知っている人はいますか?

4

1 に答える 1

1

2008年から現在までさかのぼるこれに関する大きな議論[1]があります(数ページ下のコメントを見てください)-要約すると、

application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;

また

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

また

[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];

強制的に横向きにできます-ユーザーがプログラムで横向きビューに戻ったときにこれを行う必要があります。

[1]横向きモードの iPhone アプリ、2008 システム

于 2010-07-02T13:43:26.230 に答える