Domanda

Sto cambiando il titolo oggetto pulsante indietro nel viewDidAppear di un controller nel seguente modo:

self.navigationController.navigationBar.backItem.title = @ "Precedente";

Cambia l'apice correttamente, ma la sto avendo uno strano comportamento. Quando seleziono il pulsante "precedente", cambia l'apice del controller che è fino a pila (cioè il controllore genitore ora ha il titolo "Precedente".

si fa ora perché questo è accaduto?

È stato utile?

Soluzione

Quando si utilizza un controller di navigazione, chiamando [sé setTitle: @ "Titolo"]; all'interno di qualsiasi controller della vista nella pila imposterà il titolo barra di navigazione. Questo è anche il titolo usato per impostazione predefinita per il pulsante indietro quando hai spinto un nuovo controller della vista. A quanto pare, da quello che si sta verificando, impostando in modo esplicito il titolo del backItem, imposta anche per il titolo barra di navigazione per il precedente controller della vista ignorando tutto ciò quanto specificato nella chiamata a -setTitle nel controller della vista.

Si sarà probabilmente meglio solo gestire il titolo dall'interno delle controller di vista nel vostro stack di spostamento. Quando si va a spingere un nuovo controller della vista, fare questo:

[self setTitle:@"Previous"];
NextViewController *controller = [[NextViewController alloc] init];
[[self navigationController] pushViewController:controller animated:YES];
[controller release], controller = nil;

Ora, quando i display del controller prossima vista, il pulsante indietro con dire "Precedente". Ora, non vi resta che cambiare di nuovo a qualunque sia il suo vero titolo dovrebbe essere in -viewWillAppear:

- (void)viewWillAppear:(BOOL)animated;
{
    [self setTitle:@"Real Title"];
    [super viewWillAppear:animated];
}

Si può sentire un po 'hacky, ma è meglio che cercare di ignorare la funzionalità barra di navigazione. Wrestling con il nav bar / nav regolatore stack può rivelarsi molto frustrante.

Con i migliori saluti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top