W XCode 4.5.1 tworząc aplikację storyboardową za pomocą kontrolera nawigacji, mam problem z ustawieniem przycisku BACK dla wszystkich kontrolerów widoku, które są wciśnięte. „Używam segue” i kontroler widoku pokazuje zgodnie z oczekiwaniami. Chcę jednak dynamicznie zmienić nazwę paska nawigacyjnego i przycisku Wstecz i umieścić to w moim ViewWillAppear:
self.title = @"Select Songs";
[self.backButton setTitle:@"Add"];
zmienia tytuł paska nawigacji, ale przycisk Wstecz nadal wyświetla NAZWĘ pchanego okna, a nie tekst „Dodaj”.
Symulowane metryki są wszystkie wywnioskowane. Dodałem też BarButtonItem do czarnej tacy pod widokiem w Xcode i podłączyłem przycisk BackButton kontrolera do przycisku BackButton, ale tekst nadal nie pojawia się.
Dodanie następujących komunikatów dziennika daje również coś interesującego: (a pasek tytułu jest poprawnie aktualizowany)
-(void) viewDidAppear:(BOOL)animated {
NSLog(@"%s %@", __FUNCTION__, self.navigationItem.backBarButtonItem);
NSLog(@"%s %@", __FUNCTION__, self.navigationController.navigationItem.backBarButtonItem);
}
2012-10-14 15:18:41.835 xxxx[2690:907] -[ViewController viewDidAppear:] (null)
2012-10-14 15:18:41.838 xxxx[2690:907] -[ViewController viewDidAppear:] (null)
Odpowiedzi:
9 dla odpowiedzi № 1Przycisk Wstecz pokaże tytuł poprzedniego widoku i jeśli nie zostanie ustawiony żaden tytuł, pokaże „Powrót”.
W metodzie prepareForSegue można zmienić tytuł bieżącego widoku przed naciśnięciem następnego widoku. Przycisk Wstecz pokaże wtedy wszystko, do czego ustawiłeś tytuł.
13 dla odpowiedzi nr 2
Przyjętą odpowiedzią jest hack, w ten sposób to zrobić ...
- Otwórz StoryBoard
- W oknie Document Outline znajdź ViewController, do którego chcesz wrócić do
- Kliknij element nawigacji tego kontrolera ViewController
- W Eksploratorze atrybutów zmień wartość przycisku Wstecz na niestandardową płytkę
To jest to, ciesz się ...