UINavigationController в UITabBarController, установка заголовка контроллера навигации - PullRequest
15 голосов
/ 05 марта 2012

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

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

Спасибо заранее.

Sam

Ответы [ 5 ]

40 голосов
/ 19 марта 2012

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

self.tabBarController.navigationItem.title = @"title";
3 голосов
/ 05 марта 2012
self.navigationItem.title = @"Your Title"

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

1 голос
/ 05 марта 2012

У меня отлично работает следующее:

Инициировать контроллеры в 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];

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

self.title = @"Your Title";

Удачи.

0 голосов
/ 18 декабря 2013

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

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

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

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

0 голосов
/ 05 марта 2012

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

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