2012-10-12 3 views
0

UITabbarcontroller에 UINavigationController가 있습니다. UINavigationController 내에서 하나의 뷰 뷰 핸들러 만 회전하려고합니다.iOS 6.0의 장치 방향 UINavigationController

다음은 현재 사용중인 코드입니다.

#import "UINavigationController+autorotate.h" 

@implementation UINavigationController (autorotate) 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

@end 

내가 그것을 구현하는 방법을하지 확신 :

-(NSUInteger)supportedInterfaceOrientations 
{ 
if (CURRENTDEVICE == IPHONE) 
    return [self.navigationController supportedInterfaceOrientations] | UIInterfaceOrientationMaskAllButUpsideDown; 
else 
    return UIInterfaceOrientationMaskAll; 
} 

-(BOOL)shouldAutorotate { 
return YES; 
} 

은 나뿐만 아니라 UINavigationController가에 대한 범주가 있습니다.

답변

0

cgrect로 하드 코딩 할 수 있습니다. 여기 당신을 도울 다른 질문에 대한 링크입니다. 거기에 회전을위한 두 가지 다른보기를 하드 코딩하는 좋은 예가 있지만 개인적으로 권장하지는 않습니다. 어쨌든 나는 그것이 당신을 올바른 방향으로 가리킬지도 모른다라고 생각했다.

https://stackoverflow.com/questions/12867792/ios-rotation-causing-views-to-displace-shift-forcing-me-to-use-non-sensical-har

은 시작 얻을 수 있습니다 질문에 코드의 세트가있다. (스토리 보드를 사용하는 경우) 우현에있는 옵션을 사용하여 IB의 회전을 훨씬 쉽게 설정할 수 있습니다.

희망이가 supportedInterfaceOrientations 구현에 범주에서

아드리안

0

을하는 데 도움이, 당신은 topViewController를 확인할 수 있습니다. kindOfClass: 메서드를 사용하여 어떤 클래스인지 알아낼 수 있습니다. 그런 다음 탐색의 기본값에서 다른 방향을 반환합니다.

UINavigationController의 하위 클래스로 동일한 방식으로이 작업을 수행 할 수도 있습니다. 내비게이션 컨트롤러를 서브 클래 싱하는 것은 권장되지 않습니다. iOS 6에서는 설명서에 여전히 언급되어 있지만 Apple 엔지니어가 새로운 순환 논리를 사용하면 UINavigationController을 하위 클래스로 지정할 수 있다고 말합니다.

관련 문제