Как изменить заголовок кнопки возврата UINavigationBar на Назад

Когда я нажимаю представление на контроллер навигации, заголовок кнопки «Назад» устанавливается равным заголовку предыдущего представления. Как я могу заставить кнопку «Назад» просто сказать «Назад»?


person Christian Gossain    schedule 08.11.2011    source источник
comment
Стоит упомянуть, что в Руководстве по человеческому интерфейсу iOS указано, что кнопка «Назад» должна быть помечена заголовком предыдущего уровня, чтобы помочь пользователям ориентироваться: developer.apple.com/library/ios/documentation/userexperience/   -  person cleverbit    schedule 26.03.2014


Ответы (2)


Напишите этот код в своем viewwillappear:

UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.backBarButtonItem = _backButton;
[_backButton release];
_backButton = nil;
person Baby Groot    schedule 08.11.2011
comment
Это не будет ни выглядеть, ни действовать как кнопка возврата. - person jrturton; 08.11.2011
comment
Да, это будет. Свойство backBarButtonItem специально разработано для подобной работы и берет заголовок или настраиваемое представление из UIBarButtonItem, которое вы ему даете, и превращает его в кнопку в стиле возврата. - person Mike Weller; 08.11.2011
comment
Просто хотел сказать, что как автор этого вопроса, это решение определенно сработало для меня. Мне просто нужно было добавить код в viewWillAppear контроллера представления, который НАЖИМАЕТ новое представление. - person Christian Gossain; 08.11.2011
comment
@MikeWeller - вы правы, спасибо за поправку. Я неправильно истолковал ответ как установку leftBarButtonItem. Я как раз возвращался, чтобы отметить то, что cgossain сделал в комментариях - он должен быть на предыдущем контроллере представления, а не на представленном, что является распространенным заблуждением. - person jrturton; 08.11.2011

В предыдущем контроллере представления задайте ему заголовок в viewWillAppear, а затем в коде, который подталкивает новый контроллер представления, измените его заголовок на «Назад».

Пример:

-(void)showNextScreen{
     [self setTitle:@"Back"]; 
     [self.navigationController pushViewController:asdf animated:YES];
}
-(void)viewWillAppear{
     [super viewWillAppear];
     [self setTitle:@"My Actual Title"];
}
person Tim    schedule 08.11.2011
comment
Звучит хорошо ... но когда появляется новый экран, предыдущий экран смотрит назад в заголовке, что нежелательно. Тем не менее, хорошая идея! - person nithinreddy; 17.02.2012
comment
Если вы читаете этот ответ - ›используйте вместо него принятый ответ, это намного лучше! - person Tim; 12.04.2013