проблема с автозагрузкой iphone - PullRequest
0 голосов
/ 17 ноября 2010

Я использую пользовательскую панель вкладок (3 вкладки) в моем приложении. каждая вкладка контролируется навигационным контроллером, как показано ниже. Проблема заключается в том, что при ориентации автоматического поворота каждая операция поворота выполняется нормально на корневом контроллере, но дочерний контроллер (shouldAutorotateToInterfaceOrientation) не отвечает.

NSMutableArray *localControllersArray = [[NSMutableArray alloc] initWithCapacity:3];

UINavigationController *localNavigationContriller;

  XXXViewController *mail;
  xxx = [[XXXViewController alloc] initWithTabBar];

  localNavigationContriller=[[UINavigationController alloc] initWithRootViewController:xxx];
  [localNavigationContriller.navigationBar setBarStyle:UIBarStyleDefault];
  localNavigationContriller.navigationBar.tintColor = [UIColor colorWithRed:134/255.0 green:187/255.0 blue:34/255.0 alpha:1];
  [localControllersArray addObject:localNavigationContriller];
  [localNavigationContriller release];
  [xxx release];

  YYYViewController *rsvn;
  yyyy = [[YYYViewController alloc] initWithTabBar];


  localNavigationContriller=[[UINavigationController alloc] initWithRootViewController:yyyy];
  [localNavigationContriller.navigationBar setBarStyle:UIBarStyleDefault];
  localNavigationContriller.navigationBar.tintColor = [UIColor colorWithRed:134/255.0 green:187/255.0 blue:34/255.0 alpha:1];
  [localControllersArray addObject:localNavigationContriller];
  [localNavigationContriller release];
  [yyyy release];


  TempController *tem;
  tem = [[TempController alloc] initWithTabBar];


  localNavigationContriller=[[UINavigationController alloc] initWithRootViewController:calendar];
  [localNavigationContriller.navigationBar setBarStyle:UIBarStyleDefault];
  localNavigationContriller.navigationBar.tintColor = [UIColor colorWithRed:134/255.0 green:187/255.0 blue:34/255.0 alpha:1];
  [localControllersArray addObject:localNavigationContriller];
  [localNavigationContriller release];


  tabBarController.delegate=self;
  tabBarController.viewControllers = localControllersArray;

  [localControllersArray release];

1 Ответ

0 голосов
/ 31 января 2011

Apple имеет конкретное руководство по этой ситуации:

http://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CombiningViewControllers/CombiningViewControllers.html#//apple_ref/doc/uid/TP40007457-CH104-SW8

... Вы пытались выполнить настройку Apple?

Ваш приведенный выше исходный код невозможен, этоникогда бы не скомпилировал.Ваше описание проблемы неполное ( какой корневой контроллер не работает? Корневая навигация или корневая вкладка?).

Но ... попробуйте добавить:

shouldAutorotateToInterfaceOrientation

до каждый один из ваших контроллеров, и заставьте каждого делать NSLog.Обычно вы обнаруживаете, что один из них (неожиданно) получает это сообщение, но ни один из его потомков не получает.Обычно это означает, что вы не смогли рассказать о некоторых из его детей, но вы не сможете сузить это.

...