2013-08-20 1 views
0

현재 프로젝트를 진행 중이고 문제가 있습니다. 내 문제는 내가 프로젝트 5.0 이상을 만들고 있는데, 내 프로젝트는 모두 세로보기이지만보기 하나만보기 (가로 및 세로)입니다 NavigationController 사용자 지정 클래스를 사용하고 사용자 지정 탐색 클래스 'IOS 6 오리엔테이션

에서 이와 같은 방향을 확인하고 있습니다
- (NSUInteger)supportedInterfaceOrientations 
    { 
int interfaceOrientation = 0; 

if (self.viewControllers.count > 0) 
{ 
    id viewController; 
    for (viewController in self.viewControllers) 
    { 
     if ([viewController isKindOfClass:([CalenderViewController class])]) 
     { 
      interfaceOrientation = UIInterfaceOrientationMaskAll; 
     } 
     else 
     { 
      interfaceOrientation = UIInterfaceOrientationMaskPortrait; 
     } 
    } 
} 
return interfaceOrientation; 
}` 

CalenderViewController 내가 CalenderViewController에보기를 팝업 할 때이 코드는,이 잘 작동하지만 난 CalenderViewController에 새로운 뷰 컨트롤러를 누르면 다음 새 만 세로보기를 가지 popview 잘 동작 모두보기 지원 제도이다 viewcontroller는 가로 모드로 유지되지만 세로 모드에 있어야합니다. 해결책을 찾으십시오.

+1

대신 '-preferredInterfaceOrientationForPresentation' ...? '-shouldAutorotate' ...? – holex

답변

0

ca 이렇게하면 NOshouldAutorotate에 돌려 보내서는 안됩니다. 그렇게하면 지원되는 방향이 검사되지 않고 컨트롤러가 마지막으로 사용한 방향으로 움직이지 않게됩니다.

대신에, 단지 shouldAutorotateYES을 반환하고 이미처럼, supportedInterfaceOrientations에 하나의 방향 (세로)를에서 지정할.

shouldAutorotateYES을 반환하는 것은 컨트롤러가 다른 방향으로 자유롭게 회전하기를 원할 때만 의미가 없습니다. 다르게 나타나는보기를 푸시하거나 푸시 한 후 제어기가 유일하게 지원되는 방향으로 다시 회전해야하는 경우에도 사용해야합니다.

+0

하지만 문제는 처음으로 새로운 뷰를 밀어 넣을 때 프리젠 테이션 모드 (반보기)를 표시 할 때 장치를 회전시키고 세로로보기를 완료하는 것입니다. 내가 풍경에 있고 새로운보기를 밀어 붙이면 어떤 해결책이 있겠습니까? 풍경 모드에서 두 번째보기를 강하게 밀어냅니다. –

+0

나는 내가 이해하는지 모르겠다. 보기 중 하나만 풍경을 지원해야한다고 말하지 않았습니까? –

+0

예 하나의보기 만 가로보기를 지원합니다. –