2012-10-05 6 views
0

내 앱의 방향이 올바르게 작동하는 데 문제가 있습니다. 요컨대, 필자는 애플 리케이션에서 두 개의 뷰 컨트롤러를 전환 할 것이다. ViewControllerA은 세로로 또는 거꾸로 표시해야합니다. ViewControllerB은 네 가지 방향 중 하나로 표시 할 수 있습니다.오리엔테이션이 올바르게 작동하지 않습니다.

이것은 매우 직설적이어야합니다. 정확히 어떻게할지는 모르지만, 만약 내가 단지 shouldAutorotate, shouldAutorotateToInterfaceOrientation:, 그리고 supportedInterfaceOrientations으로 피딩했다면, 나는 내가 원하는 것을 얻어야한다고 생각했습니다. 어떤 이유로, info.plist의 인터페이스 방향은 이며,보기 컨트롤러의 코드를 완전히으로 대체합니다. info.plist에 세로 방향만 허용하고 내 viewcontroller에서 모든 것을 허용하면 회전하지 않습니다. 그리고 호출되는 유일한 방법은 supportedInterfaceOrientations입니다 (여기서 나는 UIInterfaceOrientationMaskAll을 반환합니다). 마찬가지로 모든 오리엔테이션을 info.plist에 허용하면 내 코드에서 세로가 아닌 방향을 허용하지 않더라도 장치를 회전해도 viewController가 회전합니다.

내가 뭘 잘못하고 있는지 전혀 알지 못합니다. 누군가 내게 도움이되고 제 오리엔테이션 코드가 ViewControllerA, ViewControllerB, 어떤 오리엔테이션이 info.plist에서 선택되어야하는지에 대한 스 니펫을 보여줄 수 있습니까? 감사! 기능

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

답변

0

당신은 당신이 회전 할 모든 인터페이스에 true를 돌려,하자 당신이 모든 것을 상하 반전

하지만
return !(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown); 
을하려는 경우 세로 만

return interfaceOrientation == UIInterfaceOrientationPortrait; 

를 싶은 말

plist 자체에서 더 많은 전역 값을 설정하므로이 옵션이 유용하지 않으면 코드가 실행되지 않습니다. 할 수 있는. 두 가지 관점에서이를 수행 할 수 있도록 plist에 부여해야합니다.

희망이 도움이됩니다.

0

shouldAutorotateToInterfaceOrientation 메소드는 iOS 6에서 더 이상 사용되지 않습니다. 대신 현재 모든 전체 화면보기 컨트롤러에서 supportedInterfaceOrientations 및 shouldAutorotate 메소드를 구현하십시오.

또한 앱이 기본 창에서 setRootViewController를 실행하는지 확인하십시오.

0

당신의 AppDelegate.m에서이 작업을 시도

// [addSubview window_ : navController_.view]

[window_setRootViewController : navController_];

관련 문제