UITabBarController 内に UINavigationController があります。iOS 6 での自動回転に関してコミュニティが提案するすべてのことを試してみましたが、成功しませんでした。最終的に、オリエンテーションに変更を加えなかった UINavigationController にカテゴリを作成することにしました (ただし、関数は呼び出されました)。
次に、次のように UITabBarController のカテゴリを作成しました。
#import "UITabBarController+ios6Rotate.h"
@implementation UITabBarController (ios6Rotate)
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortraitUpsideDown;;
}
@end
そしてこれを得ました:
Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'preferredInterfaceOrientationForPresentation must return a supported interface orientation!
しかし、私の向きはすべてサポートされていますか?! うーん
次に、コードを次のように変更しました。
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortraitUpsideDown;
}
そして、それは私のアプリを逆さまに開始しましたが、それでも回転しません。何が起こっているのかわかりません。この時点で、ios6 で任意の種類のローテーションを確認したいと思います。どちらの側でもかまいませんが、何も機能していないようです。