2012-10-01 6 views
5

내 앱에 하위 컨트롤러 이 있어야합니다. 내 컨트롤러가이어야합니다. 그리고 그것에서, 나는 각보기의 회전을 결정합니다. 이것은 올바르게 작동합니다. 그러나 iOS6에서는 Apple이 제공 한 문서를 읽었지만 이해할 수는 없습니다.iOS6의 회전 메커니즘을 이해할 수 없습니다.

내 앱에는 루트보기 컨트롤러로 탐색 컨트롤러가 있습니다. 이 탐색 컨트롤러에는 탭 컨트롤러가 있습니다. 그리고 탭 컨트롤러에는 일부보기 컨트롤러가 있습니다. 첫 번째보기 컨트롤러 (탭 컨트롤러에서)를 세로 모드로만보고 두 번째보기 컨트롤러 (탭 컨트롤러에서)를 세로 및 가로 모드로 모두보고 싶습니다. 그것은 iOS5에서 올바르게 작동합니다. 하지만 iOS6에서 만드는 방법을 모르겠습니다. supportedInterfaceOrientations의 하위 클래스를 만들어야한다는 것을 알고 있지만 회전이 발생하면 작동하지 않습니다. 놀랍게도 뷰가 표시 될 때 호출됩니다. 내가 원하는 것을 만드는 방법?

읽어 주셔서 감사합니다.

+0

과 감각을 만드는'AppDelegate.m' 파일 '을하거나'Info.plist'과의 당신을 뷰는 미리 정의 된 방향을 지원하는지 아닌지에 관계없이'BOOL' 값을 갖는'-shouldAutorotate :'메소드에만 응답합니다. iOS6에서는'- shouldAutorotateToInterfaceOrientation :'이 더 이상 사용되지 않습니다. – holex

+0

고맙습니다. 나는 그것을 해결했다. – eon

답변

8

다음 링크는 올바른 방향으로 당신을 조종 할 수 있습니다 http://code.shabz.co/post/32051014482/ios-6-supportedorientations-with-uinavigationcontroller

는 기본적으로, 당신은 UINavigationController를 서브 클래스와 그것의 topViewController-supportedInterfaceOrientations의 변화를 듣고 있어야합니다. 블로그 게시물에서 다운로드 할 수있는 샘플 클래스가 있으며 추가 할 코드가 설명되어 있습니다.

+1

고맙습니다. 나는 그것을 해결했다. – eon

0

UINavigationController 또는 UITabbarViewController를 사용할 때 응용 프로그램은 항상 shouldAutorotate, supportedInterfaceOrientations 메서드에서 말하는 내용을 수행합니다.

이러한 범주를 추가하여 이러한 방법을 현재 표시되는 컨트롤러로 리디렉션 할 수 있습니다. 유사 항목 :

@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 

UITabbarViewController와 유사합니다.

+0

의도하지 않은 부작용이있을 수 있습니다. 그렇게 생각하면 운영 체제가 제공하는 모든 시스템 컨트롤러의 모든 내비게이션 컨트롤러의 동작입니다. 그 때문에 나는 추락했다. 서브 클래 싱은 당신이 누가 특별한 행동을하고 누가 그렇지 않은지를 통제 할 수 있기 때문에 더 좋습니다. – n13

0

내 의견으로는, 이것은 내가 발견 한 가장 좋은 설명입니다 : http://www.widemann.net/wp-fr/?p=662하지만 프랑스어입니다. supportedInterfaceOrientationsForWindow :

은 아마 당신이 - 신청`당신 응용 프로그램에 대한 지원 방향을 정의해야합니다 구글 traduction in english

관련 문제