Как изменить текст на кнопке назад - PullRequest
90 голосов
/ 07 мая 2009

По умолчанию кнопка «Назад» использует в качестве текста заголовок viewcontroller. Могу ли я изменить текст на кнопке «Назад», не меняя заголовок контроллера представления? Мне это нужно, потому что у меня есть контроллер представления, заголовок которого слишком длинный для отображения, и в этом случае я бы хотел отобразить только «Назад» в качестве заголовка для кнопки «Назад».

Я попробовал следующее, которое не сработало:

self.navigationItem.leftBarButtonItem.title = @"Back";

Спасибо.

Ответы [ 19 ]

1 голос
/ 15 марта 2013

[self.navigationController.navigationBar.backItem setTitle:@"back"];

Это работает для меня. Вы можете заменить «назад» на что-то еще.

1 голос
/ 01 июля 2013

Этот работает для меня, если вы не хотите иметь название!

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
1 голос
/ 10 июня 2014
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
0 голосов
/ 27 июля 2017

Это сработало для меня:

self.navigationController.navigationBar.topItem.title = "Back"
0 голосов
/ 10 сентября 2016

// Вы можете добиться этого, установив заголовок в предыдущем контроллере представления, как показано ниже

override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for this view
        self.navigationItem.title = "My Title"

}

override func viewWillDisappear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for back button in next view 
        self.navigationItem.title = "Back"
}
0 голосов
/ 31 марта 2016

Чтобы изменить название кнопки «Назад», см. Код ниже

InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES];

//Below code changed back button title on InformationVC page.
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil];
self.navigationItem.backBarButtonItem = backBarButton;`enter code here`
0 голосов
/ 03 июля 2013

В конце концов я понял, почему эти ответы не сработали для меня. Я установил заголовок в раскадровке. Когда я установил название на коде. это работает!

self.navigationItem.title = @"Main Menu";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
0 голосов
/ 31 декабря 2013

Если вы хотите не только изменить текст кнопки «Назад» и оставить исходную форму стрелки влево, но и сделать что-то, когда пользователь нажимает кнопку «Назад», я рекомендую вам посмотреть вокруг моего «» CustomNavigationController ».

0 голосов
/ 30 августа 2013

Мое решение состояло в том, чтобы установить заголовок, когда контроллер представления помещен в стек навигации, и сбросить его с помощью метода делегата до закрытия pc:

Поэтому я помещаю изменение заголовка в вызывающий контроллер представления, когда нажимаю другой контроллер представления, например:

self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"];
self.pushedVC.delegate = self;   
[self.navigationController pushViewController:self.pushedVC animated:YES];
self.title = @"Back";

и в функции обратного вызова делегата (которую я вызываю в viewWillDissapear):

-(void)pushedVCWillClose:(PushedVC *)sender
{
    self.title = @"Previous Title";
}
...