Приложение для iPhone работает нормально как в ландшафтном, так и в портретном режиме, но на iPad оно работает только в одном режиме?

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

if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
    self.view=Landscape;
    self.view.transform=CGAffineTransformMakeRotation(deg2rad* (90));
    self.view.bounds=CGRectMake(0.0,0.0,480.0,320.0);
} else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
    self.view=Landscape;
    self.view.transform=CGAffineTransformMakeRotation(deg2rad* (-90));
    self.view.bounds=CGRectMake(0.0,0.0,480.0,320.0);
} else if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
{
    self.view=Portrait;
    self.view.transform=CGAffineTransformMakeRotation(deg2rad* (0));
    self.view.bounds=CGRectMake(0.0,0.0,320.0,480.0);
} else
{
    self.view=Portrait;
    self.view.transform=CGAffineTransformMakeRotation(deg2rad* (180));
    self.view.bounds=CGRectMake(0.0,0.0,320.0,480.0);
}

}

Но для iPad он работает только в одном режиме: альбомном или портретном, когда я поворачиваю устройство, он показывает пустой белый экран, но если я не поворачиваю, он работает очень хорошо. Пожалуйста, помогите мне, так как я новичок в iOS.


person user2591270    schedule 31.10.2013    source источник


Ответы (1)


Одно место для проверки — цель приложения, вкладка «Общие», раздел «Информация о развертывании».

Прямо под селекторами Deployment Target и Devices вы можете переключаться между iPhone и iPad, а затем включать поддерживаемые ориентации с помощью флажков.

Если у вас уже есть эти настройки правильно для iPad и iPhone, то вы, вероятно, захотите посмотреть, как вы обработали методы supportedInterfaceOrientations или, возможно, preferredInterfaceOrientationForPresentation ваших UIViewControllers.

Первое место для поиска...

person ryan cumley    schedule 31.10.2013
comment
Если все настроено так, чтобы в этих местах разрешались нужные вам ориентации, вам придется погрузиться в то, как вы сами обрабатываете повороты, особенно с помощью методов willRotateToInterfaceOrientation:duration: и didRotateFromInterfaceOrientation: UIViewController. - person ryan cumley; 31.10.2013
comment
Да, я выбрал универсальный, но он не работает на iPad. В iphone он работает нормально в обоих режимах, но в iPad он работает только в одном режиме, когда я поворачиваю iPad, экран становится пустым белым - person user2591270; 03.11.2013
comment
Здорово! Итак, теперь мы знаем, что вы правильно поддерживаете все ориентации, и что что-то происходит при повороте, но не то, что вы хотите. Итак, давайте посмотрим, как вы реализуете вращение. Вы настраиваете свою иерархию представлений в nib, в коде или в обоих? Используете ли вы авторазметку? Пожалуйста, опубликуйте свой код для любой настройки в коде, а затем опубликуйте свой код для willRotateToInterfaceOrientation:duration: и didRotateFromInterfaceOrientation: - person ryan cumley; 03.11.2013
comment
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown || interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); } - person user2591270; 04.11.2013
comment
приведенный выше код, который я уже разместил в коде, имеет -(void)willRotateToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation продолжительность: (NSTimeInterval) продолжительность - person user2591270; 04.11.2013