Справочник по классу 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 устарела или мой код работает странно?