2013-03-23 2 views
1

내 응용 프로그램의보기는 세로보기 전용입니다.보기 컨트롤러와 루트보기 컨트롤러는 모두 shouldAutorotateToInterfaceOrientation:supportedInterfaceOrientations을 사용하여 세로 방향으로 만 회전하여 iOS 5 및 iOS 6을 모두 지원합니다. 뷰에 iAd 배너를 추가했는데 화면 상단에 올바르게 나타납니다. iPad에서 테스트 광고를보기 위해 탭하면 테스트 광고가 lanscape로 표시됩니다. 예상 한대로 - iAd가 어떤 방향 으로든있을 수 있음을 이해합니다. 그러나 광고를 닫으면 내보기가 가로로 표시됩니다. 배너가있는보기와 루트보기 컨트롤러의보기가 모두 표시됩니다. 그들은 장치를 회전시킬 때 다시 세로 방향으로 회전하고 거기에 머 무르십시오.iAd 배너는 내보기를 가로로 회전합니다.

iAd가 닫힐 때 iAd가 내보기를 회전시키지 못하게하거나 내보기를 세로로 되돌릴 수 있습니까?

편집 : 나는 또한 application:supportedInterfaceOrientationsForWindow:를 사용하여 true로 shouldAutoRotate 설정을 시도하지했습니다 - 둘 다 문제를 해결합니다.

다시 편집 : 아직 운이 없었습니다. Here's a project 매우 적은 뷰 컨트롤러 구현으로 인해 발생한 버그를 보여줍니다. 어떤 도움도 받으실 수 있습니다!

+0

명쾌함을위한 몇 가지 사항 ... (1) iOS 5와 iOS 6 모두를 다루려고한다는 점을 알기 위해 노력하고 있다고 생각하지만 ... iOS에서 SDK 릴리즈 노트, iOS 6, shouldAutoRotateToInterfaceOrientation : 더 이상 사용되지 않습니다. (2) 대신에 application을 구현하여 구현을 건너 뛸 수 있습니다 : supportedInterfaceOrientationsForWindow : ...이 작업에 대한 재정의 방법에 대한 설명서를 참조하십시오. (3) 당신이하지 않으면 (2) 당신은 풍경 iAd에서 나올 때 세로 방향으로 돌아가도록 shouldAutorotate를 구현해야 할 수도 있습니다. –

+0

감사합니다. 몇 가지 새로운 것을 시도하고 명확하게하기 위해 제 질문을 편집했습니다. – Luke

+0

@ 루크, iAd의 방향을 설정하여 방향 (ios5)을 확인하고 ShouldAutorotate 메소드에서 크기 조정 마스크 (iOS 6)를 설정해 보았습니까? 당신은 iOS에 대한 if 문을 ther에 추가하고 그것이 당신을 위해 작동하는지 확인할 수 있습니다. 나는이 방법을 이전에 시도해 보았습니다. 그리고 iad의 방향을 유지하는 데에도 도움이되었습니다. 배너에 추가하여 점심 식사를 추가하거나 완료 한 후에 원하는 방향으로보기의 방향을 설정할 수 있습니다. 그냥 도움이 될지 모르겠다. :) –

답변

0

해결되었습니다. 보조 뷰 컨트롤러는 주 뷰 컨트롤러가되어야합니다.

+0

그래서 뭘해야 했습니까? 나는 지금 같은 문제가있다. –

+0

나는 약간의 설명을하고 싶다. 하하. –

+0

_Please_ 설명! 나는 똑같은 문제를 겪고 있고, 나는 그것을 해결할 수 없다. –

0

나는 2 가지를 시도 할 것이다. 먼저 앱의 타겟 설정 (요약)에서 "지원되는 인터페이스 방향"을 설정하십시오.

인터페이스 작성기의 각보기에 대해 시뮬레이션 된 메트릭 (속성 패널의 4 탭)에서 세로 방향이 선택되어 있는지 확인하십시오. '추론'을 선택하면 자체가 표시 될 때 이전 화면 방향을 사용합니다.

+0

둘 다 세로로 설정됩니다. – Luke

0

나는 iOS 8과 9에서 작동하는이 고정식 장치를 사용하여 업데이트를 추진할 것이라고 생각했습니다. 먼저 장치 방향을 추적하는 앱을 등록하십시오.

AppDelegate.m :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

    return YES; 
} 

고라 당신이 장치의 방향을 확인하고 세로로 다시 강제 표시 완료 이제.

-(void)bannerViewActionDidFinish:(ADBannerView *)banner{ 

      UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 

      if (UIDeviceOrientationIsLandscape(orientation)) { 

       NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait]; 
       [[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 
      } 

      //NSLog(@"iAD actions finished"); 
    }