いくつかの簡単な手順で問題が解決します。
まず、AppViewerate.mで、rootViewControllerをサブビューとして追加しているかどうかを確認します。それはあなたのルートビューコントローラとしてナビゲーションコントローラを設定している場合
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
}
この
- (void)applicationDidFinishLaunching:(UIApplication *)application {
window.rootViewController = navigationController;
[window makeKeyAndVisible];
}
ような何かを、これに代えて、です。あなたはnavigationControllerの内回転方式の制御を取得する必要がある場合
第二に、そのようにUINavigationControllerのカテゴリを作成し、viewControllersをプッシュ:
今
#import "UINavigationController+Rotation.h"
@implementation UINavigationController (Rotation)
- (BOOL)shouldAutorotate {
BOOL result = self.topViewController.shouldAutorotate;
return result;
}
- (NSUInteger)supportedInterfaceOrientations {
return self.topViewController.supportedInterfaceOrientations;
}
@end
、iOSの6のためにこれら二つのオリエンテーション方法を上向きに
- (BOOL)shouldAutorotateと
- (NSUInteger)supportedInterfaceOrientations
がクラス内で呼び出されます。
な
などの古い回転方法は、これが必要である - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
がだから、最後のiOS 6
から廃止されています、ビューコントローラにこれらを実装する必要があります。
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
ビューコントローラがすべての向きを回転してサポートできるようにする場合は、
他の配向マスクは、次のとおり
- UIInterfaceOrientationMaskPortrait
- UIInterfaceOrientationMaskLandscapeLeft
- UIInterfaceOrientationMaskLandscapeRight
- UIInterfaceOrientationMaskPortraitUpsideDown
- UIInterfaceOrientationMaskLandscapeと
- UIInterfaceOrientationMaskAllButUpsideDown
チェックは、あなたのInfo.plistに姿勢を支持しました。 – endy
がiOS 5.1シミュレータになっているかどうかを確認し、正しく動作しているかどうかを確認してください。そうであれば、iOS6と互換性のあるアプリケーションを作成するためのコードがあり、向きに使用したコードを貼り付けてください... –
はいiOS 5.1のiPadシミュレータでうまくいきます。この問題は、iOS 6 iPadシミュレータ(デバイスと同じ回転の問題)で発生します。私は空のプロジェクトから再開してコードを転送し、潜在的にxibを作り直すつもりだと思っています... iOS6では回転を管理するためのコードを書き留めるコードが廃止される予定です。私はあなたに今すぐお付き合いします...すべてのこの狂気の仕事のためにアップルに感謝!! –