2011-03-17 3 views
11

내 응용 프로그램은 세로 모드로 실행되지만 가로형 모드에서는 한 화면 만 차트로 표시하려고합니다. 내가 uiviewcontroller를 가로 모드로 강제로 추가하려면 어떻게해야합니까?UIViewController를 가로 모드로만 표시합니다.

+0

iOS 7을 사용해보십시오. http://stackoverflow.com/questions/22491786/force-landscape-viewcontroller-in-ios-7/22491787#22491787 –

답변

14

죄송 합니다만이 답변은 매우 짧을 것입니다 : UINavigationController를 사용하고 있다면, 그렇게 할 수 없습니다. 따라서 @jer가주는 답은 정확하지 않습니다. 애플의 문서 상태 : 당신의 UITabBarController가 또는 UINavigationController가에서

모든 아이 뷰 컨트롤러는 공통의 방향 설정에 동의하지 않습니다.

최근에 나는이 질문에 대해 현상금에 대한 답변을했고 그 과정에서 내 앱을 거부했습니다. 여기에서 읽어보십시오 : How to constrain autorotation to a single orientation for some views, while allowing all orientations on others?

당신이 가진 유일한 해결책은 UINavigationController를 버리고 자신의 것으로 재 작성하는 것입니다.

+0

감사합니다. UINavigationController가 문제가됩니다. 링크 주셔서 감사합니다, 나는 읽을 게. – lps

+2

명확성을 위해 이전에는 nav 컨트롤러에 대해 언급 한 내용이 없었으며 마음에 들지 않습니다. 귀하의 진술은 이것이 내가 대답 한 당시의 알려진 정보라는 것을 암시합니다. – jer

+0

미안 @jer, 나는 강타하는 것을 의미하지 않으며, 나는 downvote 또는 아무것도하지 않았다. 나는이 문제에 대해 매우 힘든 투쟁을 벌였으며, 많은 사람들이 다양한 shouldAutorotateToInterfaceOrientation : implementation에 대한 동일한 대답을 제시했습니다. Apple에 의해 구현되는 방식을 전혀 이해할 수 없기 때문에이 겉으로는 간단한 문제에 대한 해결책을 찾는 것이 더욱 어렵습니다. 환호, EP. – epologee

2

shouldAutorotateToInterfaceOrientation:을 구현하고 UIInterfaceOrientationIsLandscape(param)에 대해서만 YES를 리턴합니다. 여기서 param은 메소드에 대해 선언 한 매개 변수입니다.

이렇게하면 하나의 가로 방향으로 고정되는 대신 가로 방향의 가로 및 가로를 지원합니다.

+0

그래도 시도했지만 화면에 세로로 표시됩니다. 나는 추가했다 : - (BOOL) shouldAutorotateToInterfaceOrientation : (UIInterfaceOrientation) interfaceOrientation { \t return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); } – lps

+0

이 방법은 작동하지 않습니다. 내 대답은 아래를 참조하십시오. – epologee

3

보기 컨트롤러를 표시하거나 해제하면 모달을 강제로 방향을 지정할 수 있습니다. 애니메이션을 "아니오"로 설정하면 사용자가 알지 못하더라도이를 수행 할 수 있습니다.

당신은 내가 해킹의 약간의 생각,하지만 난이 성공적으로 모든 장치의 방향을 강제로이 전제를 사용하여 코드를 구현 한 Is there a documented way to set the iPhone orientation?

에 조쉬의 대답에 대한 자세한 내용을보실 수 있습니다.

관련 문제