Поверните один UIViewController в приложении UITabBar

У меня есть приложение uitabbar, и я хочу повернуть только один ViewController с диаграммой в ландшафтном режиме. Это возможно сделать?


person Tunyk Pavel    schedule 23.05.2011    source источник


Ответы (2)


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

Одним из возможных подходов может быть использование 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];
}

Надеюсь, что это работает для вас.

person sergio    schedule 23.05.2011

Только если он модальный, если он является частью tabBarController, вам нужно поддерживать изменение ориентации для всех ваших контроллеров.

person Pier-Olivier Thibault    schedule 23.05.2011