Ландшафтная ориентация не удалась - PullRequest
0 голосов
/ 10 ноября 2011

Я на некоторое время застрял с этой проблемой, и я надеюсь, что кто-то может помочь мне с этим.

Вот что у меня есть:

Приложение для iPad со следующими экранами:

  1. Главный экран с 4 кнопками (без вкладки или панели навигации), который указывает на несколько вкладок в кодированной панели вкладок.
  2. Экран 1 Tableview
  3. Экран 2: просмотр таблицы
  4. Экран 3: просмотр таблицы
  5. Экран 4 Секционированный TableView

Мой домашний экран поддерживает как книжное, так и альбомное вращение. Когда я выбираю параметр на главном экране (который открывает новый вид с панелью вкладок), вид сбрасывается в PortraitView и больше не поддерживает альбомный вид.

Я добавил этот код во все .m файлы viewcontrollers:

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

Даже табличное представление по умолчанию сбрасывается в портретное представление и больше не поддерживает ландшафтное представление.

В моем контроллере firstview у меня есть этот код, который создает панель вкладок при нажатии кнопки на домашнем экране.

    UITabBarController *tabbarController = [[UITabBarController alloc] init];

CategoriesOverviewController *productView = [[CategoriesOverviewController alloc] initWithNibName:@"CategoriesOverviewController" bundle:nil];
UINavigationController *TabBarItem_1 = [[UINavigationController alloc] initWithRootViewController:productView];
productView.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
[productView  setTitle:@"Producten"];
productView.tabBarItem.image = [UIImage imageNamed:@"products.png"];

ShowcaseViewController *showcaseView = [[ShowcaseViewController alloc] initWithNibName:@"ShowcaseViewController" bundle:nil];
UINavigationController *TabBarItem_2 = [[UINavigationController alloc] initWithRootViewController:showcaseView];
showcaseView.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
[showcaseView  setTitle:@"Showcase"];
showcaseView.tabBarItem.image = [UIImage imageNamed:@"showcase.png"];

EventMainmenuViewController *expoView = [[EventMainmenuViewController alloc] initWithNibName:@"EventMainmenuViewController" bundle:nil];
UINavigationController *TabBarItem_3 = [[UINavigationController alloc] initWithRootViewController:expoView];
expoView.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
[expoView  setTitle:@"Beursagenda"];
expoView.tabBarItem.image = [UIImage imageNamed:@"calendar.png"];

CompanyViewController *companyView = [[CompanyViewController alloc] initWithNibName:@"CompanyViewController" bundle:nil];
UINavigationController *TabBarItem_5 = [[UINavigationController alloc] initWithRootViewController:companyView];
companyView.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
[companyView  setTitle:@"About"];
companyView.tabBarItem.image = [UIImage imageNamed:@"About.png"];

FavoritesViewController *favoritesView = [[FavoritesViewController alloc] initWithNibName:@"FavoritesViewController" bundle:nil];
UINavigationController *TabBarItem_4 = [[UINavigationController alloc] initWithRootViewController:favoritesView];
favoritesView.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
[favoritesView  setTitle:@"Favorieten"];
favoritesView.tabBarItem.image = [UIImage imageNamed:@"favorites.png"];


tabbarController.viewControllers = [NSArray arrayWithObjects: TabBarItem_1, TabBarItem_2, TabBarItem_3, TabBarItem_4, TabBarItem_5, nil];

[self presentModalViewController:tabbarController animated:YES];

tabbarController.selectedIndex = 0;

(если есть другой способ сделать это, скажите, пожалуйста!)

Чего здесь не хватает !! Нужно ли отправлять дополнительную информацию с помощью viewcontroller?

Пожалуйста, помогите мне! Я был бы очень признателен!

С уважением,

Douwe

1 Ответ

0 голосов
/ 10 ноября 2011

Чтобы UITabBarController поддерживал альбомную ориентацию, каждый из его контроллеров представления также должен поддерживать его.

В этом случае вам необходимо создать подкласс UITabBarController с shouldAutorotateToInterfaceOrientationметод возвращает YES, а затем каждый из его управляемых контроллеров представления также возвращает YES для этой ориентации.

...