Контроллер панели вкладок в контроллере навигации работает, однако в справочнике говорится, что он не будет - PullRequest
0 голосов
/ 04 октября 2011

Справочник по классу Apple UINavigation Controller говорит, что pushViewController: animated: метод не может поместить экземпляр контроллера панели вкладок в стек, и я также прочитал следующую статью: Панель вкладок контроллер внутри контроллера навигации или общий доступ к корневому представлению навигации

Но, похоже, добавление экземпляра UITabBarController в стек контроллера навигации работает хорошо для меня. Я использую XCode 4.2 (бета-версия, конечно) + iOS 5 и сделал пример кода, подобный следующему:

- (void)viewDidLoad
{
  [super viewDidLoad];
  self.secondCtrl = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];
  self.secondCtrl.title = @"Second";
  self.thirdCtrl = [[[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil] autorelease];
  self.thirdCtrl.title = @"Third";

  self.tabCtrl = [[[UITabBarController alloc] init] autorelease];
  self.tabCtrl.title = @"Tab!";
  self.tabCtrl.viewControllers = [NSArray arrayWithObjects:self.secondCtrl, self.thirdCtrl, nil];
}

- (IBAction)goNext:(id)sender {
  [self.navigationController pushViewController:self.tabCtrl animated:YES];
}

Приведенный выше фрагмент кода является частью исходного кода контроллера корневого представления окна.

Мне интересно, что ссылка на Apple устарела или мой код работает странно?

1 Ответ

1 голос
/ 04 октября 2011

UITabBarController наследуется от UIViewController, поэтому, как показывает ваш код, его можно поместить в стек навигации, однако Apple обычно не рекомендует его. Из Apple Руководства по интерфейсу пользователя iOS :

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

Конечно, из этого правила всегда есть исключения, поэтому я бы порекомендовал вам принять правильное решение и решить, что лучше для пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...