2012-02-26 4 views
1

ViewController에 중첩 된 간단한 UIWebView가 탐색 컨트롤러에서 모달로 표시됩니다. 다음이 방향 코드가 작동하지 않는 이유는 무엇입니까?

구조로서 : TableViewController -> TableViewController -> 모달 (웹뷰 제시) -> 모달 (옵션 제스처를 통해 제시 넘기기)

모든 뷰는 그것에 웹보기 제외한 모든 배향 처리, 그것은 구성을 통해 방향을 처리하는 것입니다. 이제 의도는 당신이보기는 방향 변화에 반응해야하는지에 관한 몇 가지 옵션을 설정할 수 있다는 것입니다

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    BOOL orientationSwitch = NO; 

    if([self.webApp.orientationLandscape boolValue] && 
     UIInterfaceOrientationIsLandscape(interfaceOrientation)) 
     orientationSwitch = YES; 

    if([self.webApp.orientationPortrait boolValue] && 
     UIInterfaceOrientationIsPortrait(interfaceOrientation)) 
     orientationSwitch = YES; 

    return orientationSwitch; 
} 

:

웹보기 컨트롤러는 다음과 같은 방향 코드가 있습니다. 그리고 대부분의 경우 작동하지만 웹보기가 포함 된 모달을 닫을 수있는 모달 팝업이 있습니다. 이런 일이 발생하면 전체 앱에서 방향이 고정 된 것처럼 보입니다. 다른 모든보기는 이후에 어떤 형태의 회전에도 응답하지 않습니다.

아이디어가 있으십니까?

감사합니다.

+0

orientationLandscape 란 정확히 무엇입니까? 사전의 열쇠입니까? – CodaFi

+0

NSNumber에 싸여있는 bool입니다. 핵심 데이터에서. – Slappy

답변

3

시도해 볼 항목이 있습니다. UIDeviceOrientationDidChangeNotification에 대한 UIDevice에 등록하고 알림 생성을 시작하라. 알림이 들어 오면 UIViewController 클래스 메소드 attemptRotationToDeviceOrientation (iOS 5 만 해당)을 호출하십시오. 또한

당신이 잘못 여기서 뭔가 일을 할 수 있으므로,이 기술 노트를 읽는 데 도움이 될 수 있습니다 https://developer.apple.com/library/ios/#qa/qa1688/_index.html

+0

환상적인 답변과 훌륭한 참고 자료 – Slappy

0

첫 번째, 프로젝트 설정에서 확인이 권리가 지원하는 방향이 클릭 할 (대상 -> APPNAME -> 요약)

나는 왜 이런 일이 일어나는 지 모르지만 나는 꽤 오래 전에 비슷한 문제가 있었다. 오래전에, Ios 3.2 또는 뭔가. -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {} 메소드 만 구현 한 ViewRotatorController를 만들었습니다. 다른 모든 ViewController는이를 상속합니다. 그냥 webappview 다른 구현이 있습니다. 그것은 아마도 최선의 해결책은 아니지만 작동해야합니다.

관련 문제