Поворот интерфейса с помощью UITabBarController - PullRequest
1 голос
/ 28 октября 2011

Я создал новый «Проект панели вкладок» с новым Xcode 4.2.«Новый» способ работы с UITabBar отличается: XCode не создает XIB-файл (с помощью UITabBarController), но делает все с помощью кода.Хорошо, давайте сделаем это.

Итак, мой код в didFinishLaunchingWithOptions такой:

UIViewController *viewController1, *viewController2, *viewController3;
UINavigationController *nav1, *nav2, *nav3;

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

    viewController1 = [[gemboy_iphone alloc] initWithNibName:@"vc1" bundle:nil];
    viewController2 = [[concerti_iphone alloc] initWithNibName:@"vc2" bundle:nil];
    viewController3 = [[discografia_iphone alloc] initWithNibName:@"vc3" bundle:nil];

    nav1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
    nav2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
    nav3 = [[UINavigationController alloc] initWithRootViewController:viewController3];

}
else {
  //same thing for the iPad version
}
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nav3, nil];
self.window.rootViewController = self.tabBarController;
[self.window addSubview:self.splash.view];
[self.window makeKeyAndVisible];
return YES;

И это работает.

Мои три файла .m vc1.m,vc2.m и vc3.m (а также мой iPad UIViewControllers) имеют этот метод

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
     return YES;
}

Проблема заключается в том, что при вращении iPhone он поворачивает только строку состояния, а не TabBarController!

Знаете почему?Спасибо

1 Ответ

2 голосов
/ 28 октября 2011

Вы абсолютно не обязаны создавать подкласс UITabBarController, как и вы.

Контроллер панели вкладок будет прекрасно вращаться, ЕСЛИ все его контроллеры представления реализуют mustAutorotateToInterfaceOrientation и возвращают YES для тех же ориентаций.*

Если вы создадите новый проект в Xcode 4.2 с шаблоном приложения с вкладками, вы увидите, что он автоматически поворачивается очень хорошо.

...