Frage

Ich bin die Zurück-Taste Artikel Titel in der viewDidAppear einer Steuerung in der folgenden Art und Weise zu ändern:

self.navigationController.navigationBar.backItem.title = @ "Zurück";

Es ändert die Pünktchen richtig, aber das bin ich ein seltsames Verhalten haben. Als ich die „Zurück“ -Taste auswählen, ändert es die Pünktchen der Steuerung, die in dem Stapel liegt (das heißt die übergeordnete Steuerung nun den Titel „Zurück“ hat.

Haben Sie jetzt, warum dies passiert ist?

War es hilfreich?

Lösung

Wenn Sie eine Navigation-Controller verwenden, ruft [self setTitle: @ "Titel"]; innerhalb jeder View-Controller in dem Stapel wird die Navigationsleiste Titelsatz. Dies ist auch der Titel standardmäßig für die Zurück-Taste verwendet, wenn Sie einen neuen View-Controller gedrückt haben. Offenbar von dem, was Sie erleben, explizit den Titel der backItem Einstellung, auch setzt sie für die Navigationsleiste Titel für die vorherigen View-Controller überschreiben, was auch immer, was in dem Aufruf von -setTitle im View-Controller angegeben.

Sie werden wahrscheinlich besser dran, nur den Titel von innerhalb der Ansicht-Controller in Ihrem Navigationsstapel zu verwalten. Wenn Sie gehen, um einen neuen View-Controller zu drücken, dies zu tun:

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

Wenn nun der nächsten View-Controller-Displays, die Zurück-Taste mit Wort „Zurück“. Nun brauchen Sie nur, um es unabhängig von seinem wirklichen Titel sollte in -viewWillAppear sein zu ändern zurück:

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

Es kann ein wenig hacky fühlen, aber es ist besser, als zu versuchen, die Navigationsleiste Funktionalität außer Kraft zu setzen. Ringen mit der Navigationsleiste / nav-Controller-Stack kann sich als sehr frustrierend.

Mit freundlichen Grüßen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top