2011-10-04 13 views
15

Pracuję nad aplikacją z kontrolerem nawigacyjnym. Wiem, jak ustawić tytuł, gdy widok ładuje się początkowo. Popchnę nowy kontroler widoku i ustawię jego tytuł. Problem polega na tym, że po naciśnięciu przycisku Wstecz nie ma już tytułu oryginalnego kontrolera widoku. Starałem się zrobić ...
navigationController title

- (void)viewWillAppear:(BOOL)animated { 
    self.navigationController.title = @"Some Title"; 
} 

To nie ustawić tytuł chociaż. Czy ktoś wie, co mogę zrobić?

+0

tytuł do oryginalnego kontrolera nie mogą być zmienione: | Chyba, że ​​celowo coś z tym zrobisz. opublikuj trochę kodu. – Legolas

+0

Więc nie ustawiasz 'self.navigationController.title' na' nil' lub '@" "' gdzieś indziej w twoim kodzie? – EmptyStack

+1

Mam 2 kontrolerów widoku ... powiedzmy odpowiednio A i B. Ustawiam tytuł A w metodzie viewDidLoad. Następnie wciskam B i ustawiam tytuł B na coś innego w jego metodzie viewDidLoad. Kiedy naciśniesz przycisk Wstecz na przycisku B, kontroler widoku B jest wysunięty, a A jest wyświetlane bez tytułu. –

Odpowiedz

36

UINavigationController pobiera wartość tytułu z bieżącego kontrolera UIViewController.

Aby ustawić tytuł dla widoku kontrolera, po prostu wykonaj następujące czynności:

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    self.title = @"Some Title"; 
} 

dla każdego ze swoich Zobacz kontrolerów, w tym jednego korzenia.

+0

Ustawiam tytuł kontrolera widoku na narzędziu budującym interfejs scenorysu. ale to nie działa! – hasan83

+0

Należy zachować ostrożność, jeśli posiadasz kontrolkę NavigationController osadzoną w TabBarController, ustawi ona tytuł karty i tytuł paska nawigacji! zamiast tego użyj 'self.navigationItem setTitle' –

9

Spróbuj zmienić tytuł elementu nawigacji.

[self.navigationItem setTitle:@"Some Title"]; 
0

Spróbuj ustawić swój tytuł w ten sposób.

self.navigationitem.title = @"My Title"; 
3

w Swift 3:

navigationItem.title = "Custom title" 

lub jeśli chcesz dostosować szczegóły tytułem:

let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 30)) 
titleLabel.textColor = UIColor.red 
titleLabel.text = "Hello" 
titleLabel.textAlignment = .center 
titleLabel.backgroundColor = UIColor.green 
titleLabel.font = UIFont(name: "Baskerville-Bold", size: 20) 
navigationItem.titleView = titleLabel 
Powiązane problemy