2011-02-15 5 views
0

탐색 컨트롤러 계층에 세 개의보기 컨트롤러가 있다고 가정합니다.보기 컨트롤러가 올바른 방향으로 표시되지 않음

vc1: 
{ return (interfaceOrientation == UIInterfaceOrientationPortrait);} 

vc2: 
{ return (interfaceOrientation == UIInterfaceOrientationPortrait 
    || interfaceOrientation == UIInterfaceOrientationLandscapeLeft 
    || interfaceOrientation == UIInterfaceOrientationLandscapeRight);} 

vc3: 
{ return (interfaceOrientation == UIInterfaceOrientationPortrait);} 

그래서, 내 초기 뷰 컨트롤러 VC1 세로 모드에서 표시됩니다 : 나는 세 가지 뷰 컨트롤러의 shouldAutorotateToInterfaceOrientation: 메시지를 처리하고있어 어떻게

이입니다. 장치가 회전되면 아무 일도 일어나지 않습니다. 그런 다음 vc2을 스택에 밀어 넣으면 처음에는 세로로 표시됩니다. 장치를 회전하면 vc2이 가로 모드로 바뀝니다. VC2을위한 가로 모드에서, 남아있는 동안, 나는 스택에서 VC2을 팝업 VC1 및가 세로 모드에 표시됩니다 VC1로 돌아갑니다 - 또한 정확합니다.

이제 여기에 문제가 있습니다.

VC1VC2에, 세로 팝업을 표시하고, 가로보기를 볼 회전된다. 그런 다음 팝업을 vc3으로 가져오고 vc3은 가로 모드로 슬라이드합니다 (세로 만 지원).

왜 이런 일이 일어나고 있는지, 또는 어떻게 대처해야하는지 잘 모릅니다. 즉, vc1로 돌아갈 때마다 자동으로 세로로 표시되지만 vc3은 이전 vc에서 사용했던 모든 방향으로 자동 표시됩니다. 하지만 vc1과 vc3에 동일한 코드를 사용하고 있다는 것을 알 수 있으므로 나에게 의미가 없습니다.

도움을 주시면 매우 감사하겠습니다.

+0

"vc1 및 vc1에 동일한 코드를 사용하고 있습니다." vc1과 vc3을 말하는 겁니까? 그걸 편집하고 싶을 수도 있습니다. –

+0

그래, 고마워, "vc1과 vc3"의미, 질문을 편집했습니다 ... – bpatrick100

답변

0

실제로 기기 방향을 어떻게 결정하고 있습니까?

UIDeviceOrientation은 오류가있는 장치의 방향을 나타내며 UIDeviceOrientation ... 정수와 비교해야합니다.

UIInterfaceOrientation은 인터페이스의 방향을 나타냅니다. statusBar의 방향을 읽음으로써 결정되며 UIInterfaceOrientation과 비교해야합니다.

+0

shouldAutorotateToInterfaceOrientation : (UIInterfaceOrientation) interfaceOrientation 사용하고 있습니다. 예를 들어, interfaceOrientation은 UIInterfaceOrientationPortrait와 비교됩니다. – bpatrick100

관련 문제