2013-04-29 2 views
4

Я создал приложение для iPhone iOS6 «Один вид».iOS 6 iAd проблемы с ориентацией - iAds вращают мое приложение только для портрета и оставляют его таким образом

Приложение - только портрет.

Я добавил приложение iAds к приложению.

добавить дополнительные представления к приложению, как это:

  if (self.menuChoiceInstance == nil) {    
       self.menuChoiceInstance = [[NJDViewControllerMenuChoice alloc] initWithNibName:@"NJDViewControllerMenuChoice" bundle:nil]; 
       self.menuChoiceInstance.delegate = self; 
     } 

     [self.view addSubview:self.menuChoiceInstance.view]; 

Все вроде нормально работает.

Затем я добавил универсальную/iPad поддержку. Включая следующую строку, когда я добавляю свой подсмотр:

  [self.menuChoiceInstance.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, 
            self.view.frame.size.height)]; 

Теперь у меня возникают проблемы с iAds.

При нажатии iAd на корневом контроллере iPad поворачивается в сторону пейзажа. Затем при закрытии объявления он поворачивается назад к портрету.

Однако при нажатии iAd на iPad на подземелье изображение поворачивается в сторону пейзажа, и оно остается неподвижным при закрытии. Это разрушает мой пользовательский интерфейс.

Эта проблема с iPad является основной проблемой, но теперь я также иногда вижу проблемы с видом iPhone, которые могут быть связаны.

Баннер iAd внизу экрана, на котором показаны тестовые объявления, иногда имеет гигантский текст и значки внутри него, что делает их пересекающимися друг с другом и невозможными для чтения. Нажатие iAd поворачивает телефон к пейзажу (снова в приложении только для портрета), но iAd отображает рекламу, как будто это портрет, с растянутым контентом, который выходит из нижней части экрана.

ответ

0

Я считаю, что проблема была вызвана тем, что я добавлял подвидов на мой текущий вид, вместо переключения видов.

Я изменил код, который добавляет подвид от:

[self.view addSubview:self.statsInstance.view]; 

к коду, который представляет вид.

[self presentViewController: self.settingsInstance animated:YES completion:nil]; 

Это, кажется, помогает устранить проблему, а также некоторые другие вопросы, с помощью методов делегирования IAD (bannerViewActionDidFinish звали сразу после загрузки объявления.)

2

Аналогичный вопрос здесь. Трудно узнать, что это было, потому что я использовал сторонний API. Моя проблема была решена путем добавления моего UIView в качестве дочернего элемента в rootViewController. Затем мое представление начинает отвечать на все изменения главного окна. Просто строка вроде этого где-то рядом viewDidLoad myUIViewController (или столько, сколько у вас есть).

[myUIWindow.rootViewController addChildViewController:self]; 

Аналогичные проблемы ...

iAd Landscape Strange View Behavior

Force ADBannerView to rotate (Not "orientation" but actual transform)

iAd banner rotates my view to landscape

+0

Просто введите [self addChildViewController: nextController]; перед моим вызовом [self.view addSubview: nextController.view]; исправил этот вопрос для меня. Приложение находится в режиме «Портрет» на iPad, нажав на рекламное объявление, загружает полноэкранное альбомное объявление, и теперь, когда я сделал его дочерним, мое приложение остается в режиме «Портрет», когда я выхожу из «Ландшафтного объявления». Благодаря! – RanLearns

 Смежные вопросы

  • Нет связанных вопросов^_^