Всем привет. Я все еще новичок в разработке iPhone, и мне сложно понять, как изменить заголовок панели навигации. По другому вопросу на этом сайте кто-то рекомендовал использовать:
viewController.title = @"title text";
но это не работает для меня ... Мне нужно добавить UINavigationController для этого? Или, может быть, просто выход из моего подкласса UIViewController? Если это поможет, я определил панель навигации в IB и пытаюсь установить ее заголовок в своем подклассе UIViewController. Это еще одна из тех простых вещей, от которых у меня болит голова. Ввод self.title = @ "текст заголовка"; вviewDidLoad
и initWithNibName
тоже не сработало. Кто-нибудь знает, что происходит и как это сделать правильно?
Благодарность!
если вы делаете все это с помощью кода в
viewDidLoad
методе,UIViewController
вам нужно только добавитьself.title = @"title text";
что-то вроде этого:
- (void)viewDidLoad { [super viewDidLoad]; self.title = @"title"; }
вы также можете попробовать
self.navigationItem.title = @"title";
также проверьте, не является ли ваш navigationItem нулевым, и если вы установили собственный фон для панели навигации, проверьте, установлен ли заголовок без него.
источник
Есть одна проблема с использованием
self.title = @"title";
Если вы используете панель навигации вместе с панелью вкладок, указанная выше строка также меняет метку для элемента панели вкладок. Чтобы этого избежать, используйте то, что предлагает @testing
self.navigationItem.title = @"MyTitle";
источник
Если вы хотите изменить заголовок навигационной панели (а не заголовок кнопки возврата на навигационной панели!), Этот код будет работать.
self.navigationController.topViewController.title = @"info";
источник
Если вы хотите изменить заголовок navBar внутри контроллера tabBar, сделайте следующее:
-(void)viewDidAppear:(BOOL)animated { self.navigationController.navigationBar.topItem.title = @"myTitle"; }
источник
В моем приложении на основе навигации я делаю следующее:
myViewController.navigationItem.title = @"MyTitle";
источник
У меня были контроллеры навигации, интегрированные в TabbarController. Это сработало
self.navigationItem.title=@"title";
источник
По умолчанию контроллер навигации отображает заголовок 'topitem'
так что в вашем методе viewdidload вашего appdelegate вы можете. Я проверил и работает
navController.navigationBar.topItem.title = @"Test";
источник
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release];
Этот код работал.
источник
Если вы работаете с раскадровками, вы можете щелкнуть контроллер, переключиться на вкладку свойств и установить там текст заголовка.
источник
Думаю, вам нужен динамический заголовок, поэтому вы не устанавливаете его в IB.
И я предполагаю, что ваш объект viewController - это тот, который указан в NIB?
Возможно, попытка установить для него фиктивное значение в IB, а затем отладить методы, чтобы увидеть, какой контроллер имеет фиктивное значение - при условии, что оно отображается как заголовок ...
источник
Изнутри вашего TableViewController.m:
источник
Для всех ваших Swift-ов у меня это отлично сработало. Это, в частности, один из самых коротких способов установить заголовок:
override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "presentLineItem" { print("Setting Title") var vc = segue.destinationViewController as! LineItemsTableViewController vc.navigationItem.title = "Line Item" } }
источник