2011-10-04 20 views
15

Sto lavorando a un'app con un controller di navigazione. So come impostare il titolo quando la vista viene caricata inizialmente. Spingo un nuovo controller di visualizzazione e ne imposto il titolo. Ora il problema è quando premo il pulsante Indietro, il titolo per il controller di visualizzazione originale non c'è più. Ho cercato di fare ...
navigationController title

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

questo non impostare il titolo però. Qualcuno sa cosa posso fare?

+0

Il titolo per il controller originale non può essere cambiato: | A meno che tu non faccia intenzionalmente qualcosa con esso. pubblica un po 'di codice – Legolas

+0

Quindi non stai impostando 'self.navigationController.title' su' nil' o '@" "' da qualche altra parte nel tuo codice? – EmptyStack

+1

Ho 2 controller di vista ... diciamo A e B rispettivamente. Ho impostato il titolo di A nel suo metodo viewDidLoad. Quindi, spingo B e imposto il titolo di B su qualcosa di diverso nel suo metodo viewDidLoad. Quando premo il pulsante Indietro su B, il controller di visualizzazione di B viene fatto scattare e A viene visualizzato senza titolo. –

risposta

36

UINavigationController ottiene il valore per il titolo dall'attuale UIViewController.

Per impostare un titolo per un controller di vista, è sufficiente effettuare le seguenti operazioni:

- (void)viewDidLoad { 

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

Per ciascuno dei vostri View Controller, tra cui quella di root.

+0

Ho impostato il titolo per il controller della vista sul builder dell'interfaccia storyboard. ma non funziona! – hasan83

+0

State attenti a questo, se avete un NavigationController incorporato in un TabBarController questo imposterà il titolo della scheda e il titolo della barra di navigazione! usa invece 'self.navigationItem setTitle' –

9

Provare a modificare il titolo della voce di navigazione.

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

Prova a impostare il titolo in questo modo.

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

in Swift 3:

navigationItem.title = "Custom title" 

o se si desidera personalizzare i dettagli del titolo:

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 
Problemi correlati