UITabBar проблема с автоповоротом - PullRequest
4 голосов
/ 25 января 2012

Мне интересно, почему проект iPad на основе UITabBarController не будет автоматически добавляться, если я укажу, что некоторые вкладки должны автоматически перемещаться в альбомном режиме, а другие - в альбомном и портретном режиме.

Я использовал

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

для всех UIViewController и укажите, если ландшафт return YES; другой мудрый return NO;

С другой стороны, если UIViewController should rotate in landscape and portrait i've just возвращает YES; `всегда.

Спасибо заранее.

1 Ответ

4 голосов
/ 25 января 2012

для всех UIViewController, которые вы загружаете в tabbarcontroller, вы должны вернуть True в

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

Примечание: Контроллер панели вкладок не будет автоматически поворачиваться, пока ВСЕ контроллеры, которые он содержит, также не будут автоматически вращаться.

из Поворот одного UIViewController в приложении UITabBar - >>

Не существует простого способа иметь только один вид в альбомном режиме, в то время как другие находятся в альбомной ориентации, и нет простого способа программно переключиться в ландшафтный режим.

Одним из возможных подходов было бы использование CGAffineTransform для преобразования вашего представления в ваш viewWillAppear (то есть, прямо перед отображением представления):

- (void)viewWillAppear:(BOOL)animated; {
   //-- Adjust the status bar
   [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
   //-- Rotate the view
   CGAffineTransform toLandscape = CGAffineTransformMakeRotation(degreesToRadian(90));
   toLandscape = CGAffineTransformTranslate(toLandscape, +90.0, +90.0 );
   [self.view setTransform:toLandscape];
}
...