iOS アプリケーションに問題があるようです。
展開対象は iOS5.0 ですが、iOS 6.0 SDK を使用しています。
私のView Controllerには次のものがあります:
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationMaskPortrait;
}
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
これは、iOS5 シミュレーターで実行すると問題なく動作します。ビューは、LandScape または上下逆に回転しません。
ただし、IOS6 シミュレータ (およびデバイス) では、回転し続けます。
私はそれが呼び出され、2回呼び出されるNSLog
ことを確認して-supportedInterfaceOrientations
いましたが、それでもLandScape(右または左)に回転します
私は何を間違っていますか?
UINavigationController
これを含めるために (My Root View Controller)も拡張しました。
@implementation UINavigationController (Rotation_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
しかし、まだ成功していません。
編集
マットの答えによると。また、UINavigationController と同様の実装で UITabBarController を拡張する必要があり、それが機能しました。