Когда я нажимаю представление на контроллер навигации, заголовок кнопки «Назад» устанавливается равным заголовку предыдущего представления. Как я могу заставить кнопку «Назад» просто сказать «Назад»?
Как изменить заголовок кнопки возврата UINavigationBar на Назад
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
Это не будет ни выглядеть, ни действовать как кнопка возврата.
- person jrturton; 08.11.2011
Да, это будет. Свойство
backBarButtonItem
специально разработано для подобной работы и берет заголовок или настраиваемое представление из UIBarButtonItem
, которое вы ему даете, и превращает его в кнопку в стиле возврата.
- person Mike Weller; 08.11.2011
Просто хотел сказать, что как автор этого вопроса, это решение определенно сработало для меня. Мне просто нужно было добавить код в viewWillAppear контроллера представления, который НАЖИМАЕТ новое представление.
- person Christian Gossain; 08.11.2011
@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
Звучит хорошо ... но когда появляется новый экран, предыдущий экран смотрит назад в заголовке, что нежелательно. Тем не менее, хорошая идея!
- person nithinreddy; 17.02.2012
Если вы читаете этот ответ - ›используйте вместо него принятый ответ, это намного лучше!
- person Tim; 12.04.2013