iOS5에서 가로 방향으로 앱이 완벽하게 작동했습니다. 그러나 iOS6에서는 모든보기 컨트롤러에서 세로 방향을 사용하기 시작했습니다. shouldAutorotateToInterfaceOrientation 메소드는 더 이상 호출되지 않습니다. 나는 new stuff about changed rotation mechanism in iOS6를 읽고 난 내 AppDelegate에 한 줄을 추가하여 것을 해결할 수 있었다 :iOS6 : 다른 방향을 지원하기 위해 App Delegate에서 rootViewController를 설정해야합니까?
self.window.rootViewController = _viewController
_viewControler이 시작 화면 (홈 메뉴)입니다. 다른 모든 뷰 컨트롤러는 shouldAutorotateToInterfaceOrientation 메서드를 구현하고 가로 방향에서만 YES를 반환합니다. 그래서, 그것은 하나의 방향 만 지원해야하는 앱을위한 완벽한 솔루션입니다.
그러나 문제는 하나의보기 컨트롤러 (phone-VC라고도 함)가 세로 방향으로 표시되어야한다는 것입니다. 이제이 뷰 컨트롤러를 회전하려면 appDelegate의 rootViewControler에 지정된 홈 메뉴 컨트롤러에서 YES를 반환해야합니다. 그러나이 rootViewController가 가로로만 표시해야하는 창을 시작하기 때문에이 작업을 수행 할 수 없습니다. 그렇지 않으면이 창의 그래픽이있는 레이아웃이 중단됩니다. 그러나 shouldAutorotateToInterfaceOrientation (Home-menu)에서 YES를 반환하지 않으면 내 뷰 phone-VC에서 같은 메서드가 호출되지 않고 세로로 표시되어야합니다.
아이디어가 있으십니까? AppDelegate에서 rootViewController 지정은 필수입니까?
업데이트 : 기기에 문제가 있습니다 (적어도 iPhone4 이상).
실제 장치 또는 시뮬레이터에서 회전 문제가 있습니까? 나는 실제 장치에서 시뮬레이터 회전이 다른 것을 알았다. 이 옵션을 선택합니다 – rckoenes
... http://stackoverflow.com/questions/11544382/ios-6-screen-rotation-without-using-storyboard http://stackoverflow.com/questions/12775265/ios-6-shouldautorotate-is-not-called-called – user1662392