2013-04-08 2 views
2

UITabBarController 내에 UINavigationController가 있습니다. 나는 사회가 succes에없는 아이폰 OS 6의 자동 회전에 대한 제안 모든 노력을, 마지막으로 나는 (함수가 호출받을 않았지만)이 oriantaion에 변경을하지 않았다 UINavigationController가에 카테고리UITabBarController 내의 UINavigationController는 iOS 6에서 회전하지 않습니다.

enter image description here

을 만들하기로 결정했습니다

그때 나는이 같은 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! 
,536을

하지만 내 모든 방향이 지원됩니다!

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortraitUpsideDown; 
} 

을 그리고 내 응용 프로그램을 상하 반전 시작했지만 여전히 회전하지 않습니다 : 흠

그때 나는이에 코드를 변경했습니다. 나는 무슨 일이 일어나고 있는지 이해하지 못합니다. 이 시점에서 나는 어떤 종류의 회전을 ios6에서보고 싶습니다. 어느 쪽이 좋을지는 아무것도 신경 쓰지 않습니다.

답변

2

알아낼 나에게 몇 시간이 걸렸다처럼

예컨대는 UINavigationController 카테고리가 될 것이다.

[window addSubview:[someController view]]; // In the appDelegate 

내가 할 필요가 모든이로 대체하는 것이었다 : 다음 previos 프로그래머 이런 짓을 몇 가지 이유를 들어 :

[self.window setRootViewController:someController]; 

자동 방향에 돌아 회전이 솔루션입니다!

+0

예 rootViewController는 iOS6을 사용하는 방법입니다. 콘솔의 경고에서 알았어 야합니다. – nsgulliver

+0

고마워요! - 이전 방법은 'setRootViewController'선택기가 아직없는 iOS 3.1과의 이전 버전 호환성을위한 것일 수 있습니다. – TinkerTank

2

올바른 supportedInterfaceOrientations을 추가해야합니다. 해당 카테고리에서 해당 viewController의 오리엔테이션 방법을 호출 해 볼 수 있습니다. 이

-(BOOL)shouldAutorotate 
{ 
    return [self.topViewController shouldAutorotate]; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return [self.topViewController supportedInterfaceOrientations]; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return [self.topViewController preferredInterfaceOrientationForPresentation]; 
} 
+0

나는 정말로 이해하지 못합니다. 나에게 코드를 보여주는 마음? – Segev

+0

도움 코드 추가 – nsgulliver

+0

내 UINavigationController 카테고리에서 정확히 동일한 코드를 사용했지만 도움이되지 않았습니다 (함수가 호출되었지만 안수 변경이 없음). UITabBarController 범주에서 구현하는 방법에 대한 아이디어가 있습니까? – Segev

관련 문제