UINavigationController в UITabBarController, установив заголовок контроллера навигации

В моем приложении у меня есть UINavigationController в UITabBarController. Все работает нормально, однако я не могу установить заголовок для навигационного контроллера. Я пробовал несколько разных методов и искал Google, но, похоже, не было решения этой проблемы.

Любая помощь будет принята с благодарностью.

Заранее благодарю.

Сэм

Ответы

Ответ 1

Я нашел ответ в конце, это было:

self.tabBarController.navigationItem.title = @"title";

Ответ 2

self.navigationItem.title = @"Your Title"

Работает для каждого случая.

Ответ 3

Для меня следующее прекрасно работает:

Инициировать контроллеры в appDelegateDidFinishLaunching: Метод:

UINavigationController *navContr1;
UINavigationController *navContr2;

UIViewController *viewController1, *viewController2;

viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil] autorelease];
viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil] autorelease];



navContr1       = [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease];
navContr2       = [[[UINavigationController alloc] initWithRootViewController:viewController2] autorelease];


self.tabBarController = [[[UITabBarController alloc] init] autorelease];
//self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navContr1, navContr2, nil];

self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];

с этим сделано в вашем другом представленииКонтроллеры initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil - Метод вы можете изменить заголовок со следующей строкой:

self.title = @"Your Title";

Удачи.

Ответ 4

Посмотрите класс UIViewController в документах. Существует свойство, указывающее на UINavigationItem, которое затем имеет свойство, указывающее на title. Если указатель на элемент навигации возвращает nil, вы должны были неправильно подключить контроллеры.

Ответ 5

self.title всегда устанавливает плитку объекта rootViewController вашего ViewController.

Если у вас есть viewController, а rootViewController - UINavigationController, тогда self.title установит заголовок UINavigationController.

Аналогично, если вы инициализировали объект UITabViewController с объектами UIViewController, то self.title будет применяться к соответствующей кнопке заголовка в индексе, UITabBar UITabViewController.

Отсюда следует, что self.title применяется к объекту, содержащему viewController.