2017-01-12 3 views
1

4 개의 viewcontroller가있는 앱이 있습니다. 하나는 가로 모드로만 제시해야합니다. 나머지 3 개는 가로 또는 세로 중 하나 일 수 있습니다.Objective-C는 방향을 제어하기 위해 UIInterfaceOrientationMask를 사용합니다.

내 배포 정보 영역에서 장치 방향, 거꾸로, 가로 왼쪽 및 가로 오른쪽이 선택되어 있습니다. Info.plist에서 3 개의 인터페이스 오리엔테이션이 지원됩니다 : 풍경 왼쪽, 풍경 오른쪽 및 세로 위쪽 홈 버튼.

내 풍경 컨트롤러에서 내가 원하는 풍경은 내가 가지고있다 : - (BOOL) shouldAutorotate { return YES; } 다른 3 뷰 컨트롤러에서

-(UIInterfaceOrientationMask) supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscapeLeft+UIInterfaceOrientationMaskLandscapeRight; 
} 

내가 가진 : - (BOOL) shouldAutorotate { 반환 YES; } 이러한 모든 설정과 함께

-(UIInterfaceOrientationMask) supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAll; 
} 

: 에만 풍경에 있어야 1)보기는 풍경에가, 그래서 좋다. 2) 다른 3 개의보기는 가로 방향 왼쪽, 가로 방향 오른쪽 및 세로 모드로 표시 될 수 있으며 단추는 맨 위에 표시됩니다. 3) 다른 세로 위치에서 화면을 회전하려고하면 회전하지 않습니다.

그래서 배치되지 않은 넷째 선택 사항을 포함하도록 배치 페이지 또는 Info.plist 페이지를 변경합니다. 결과적으로 3 개의 다른 뷰는 회전하지만 가로 모드 뷰는 이제 세로로 회전합니다.

첫 번째보기가 가로 방향으로 만 표시되고 다른 쪽이 회전 할 수 있도록하려면 어떻게해야합니까?

답변

0

이 링크를 사용하여 방향을 제어 할 수 있습니다.이 기능은 저에게 효과적입니다.

https://stackoverflow.com/a/24928474/6438500

+0

답장을 보내 주셔서 감사합니다. – Mark

+0

코드를 잘라내어 뷰 컨트롤러에 붙여 넣으면 선언되지 않은 변수 appDelegate 사용과 관련하여 2 개의 오류가 발생했습니다. – Mark

+0

여기서 appDelegate는 AppDelegate의 인스턴스입니다. AppDelegate 인스턴스를 만들어야합니다. – Sunny

관련 문제