2014-03-31 1 views
0

동지,iOS 오리엔테이션 특정 화면에서 풍경과 인물 모두 지원 - 전체 화면 없음

특정 화면에서만 가로 방향을 사용하려면 어떻게해야하나요? 지금까지 일반 설정에서 가로 방향 및 오른쪽 방향 옵션을 선택하고 장치 방향에 대한 plist 파일의 지원되는 인터페이스 방향 (iPhone)에서 사용하도록 설정했지만 모든 화면에 영향을 미칩니다.

내 애플리케이션에 약 80 개의 스크린이 있으며, 세로 및 가로 모두 약 5 화면을 지원해야하며, 나머지 화면은 세로 모드로만 표시되어야합니다.

도움을 주시면 대단히 감사하겠습니다.

덕분에, (당신의 PLIST를 조정) 일반 설정에서 라 메쉬

+0

모든 방향을 허용 한 다음 원하는 방향으로만 세로를 설정하십시오. http://stackoverflow.com/questions/18988163/uiinterfaceorientation-landscape-vs-portrait-issue-in-xcode-5/18989506#를 참조하십시오. 18989506 –

+0

포트를 강제로 추가하려면 각 화면에 추가하고 싶습니까? 다른 말로하면, Portrait 만 강제로 75 화면에 쓰길 원하십니까? –

+0

안녕하세요, 프레임 워크에이 애플리케이션을 구축하고 있습니다. 우리의 프레임 워크는 UIViewController를 확장하고 FramewworkUIViewController 클래스를 확장하여 화면을 디자인합니다. FrameworkUIViewCOntroller에 카테고리를 추가하고 supportedInterfaceOrientation을 추가하여 세로 모드 만 고정했지만 작동하지 않습니다. (... –

답변

0

, 당신은 가능한 모든 지원 방향을 선택해야합니다. 그런 다음 특정보기 컨트롤러에서 제한해야합니다. NavBar 또는 TabBar 컨트롤러를 사용하는 경우 여기에 제한을 추가해야합니다. 의 UIViewController의 문서에서

: 아이폰 OS 6에서

이상에서는 앱 앱의 Info.plist 파일에 정의 된 인터페이스 방향을 지원합니다. 뷰 컨트롤러는 supportedInterfaceOrientations 메서드를 재정 의하여 지원되는 방향 목록을 제한 할 수 있습니다. 일반적으로 시스템은이 메소드를 윈도우의 루트보기 컨트롤러 또는 전체 화면을 채우기 위해 제공된보기 컨트롤러에서만 호출합니다. 하위 뷰 컨트롤러는 상위 뷰 컨트롤러가 제공 한 창 부분을 사용하며 지원되는 회전에 대한 결정에 직접 참여하지 않습니다. 앱의 오리엔테이션 마스크와 뷰 컨트롤러의 오리엔테이션 마스크의 교차점을 사용하여 뷰 컨트롤러를 어느 방향으로 회전 시킬지 결정합니다.

간단하게 만들려면 UINavigationController에서 가장 큰보기 컨트롤러를보고 회전 기능을 결정하는 범주를 만들었습니다. 그런 식으로, 회전이 필요한 특정 뷰 컨트롤러에서 동일한 메서드를 무시하고 가로 방향 지원을 추가 할 수 있습니다.

@implementation UINavigationController (AutoRotation) 

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

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

@end 
+0

죄송합니다. 모든보기 컨트롤러에이 두 메서드를 추가 하시겠습니까? –

+1

안녕하세요, 저는 이것을 구축하고 있습니다. FrameworkUIViewCOntroller에 범주를 추가하고 supportedInterfaceOrientation을 추가하여 세로 모드에만 고정했지만 작동하지 않습니다. (... –

+0

내가 할 수있는 ' 내가 한 일을 정확하게 기억하지만, 부모 뷰 컨트롤러와 같이, 나는 shouldAutorotate'를 false로 설정하고, child viewController에서 회전시키고 자하는 것은 shouldAutoRotate를 true로 설정한다.그런 다음 하위 viewController에'supportedInterfaceOrientations'를 추가하여 지원할 회전을 정확하게 지정할 수 있습니다. – djibouti33

0

화면이 UINavigationController 안에 있습니까? 그렇다면 모든 뷰 컨트롤러가 어떤 방향을 지원하는지 결정할 수있는 것은 아닙니다.