2009-10-08 13 views
55

zrobić to w UIViewController dla jednego z moich zakładkach:self.title ustawia navigationController i tabBar Tytuł tytułu? Czemu?

self.title = @"Welcome"; 

Jednak to nadpisanie co mam na tabBarItem. Próbowałem:

self.tabBarItem.title = @"Home"; 

i

[self.tabBarItem initWithTitle:@"Home" image:[UIImage imageNamed:@"iconHome.png"] tag:0]; 

Ale wciąż self.title nadpisuje tabBarItem, niezależnie od tego, czy staram dwóch ostatnich fragmentów kodu po tytuł został ustawiony. Kod działa nawet bez błędów, ale self.tabBarItem.title lub initWithTitle nic nie robi?

Odpowiedz

160

OK, ja zorientowaliśmy się! Oto, co robię:

self.title = @"Title for TabBarItem"; // TabBarItem.title inherits the viewController's self.title 
self.navigationItem.title = @"Title for NavigationBar"; 

navigationBar odziedziczy self.title, chyba że zostanie inaczej używając self.navigationItem.title

+0

Wystąpił dokładnie ten sam problem podczas korzystania z UINavigationController w ramach kontrolera UITabController. To rozwiązało to. –

+3

Nie wiem, ale nie działa dla mnie :( – cV2

+0

To działa dla mnie.Bardzo dobrze nadaje się do zmiany tytułu tylko na podstawie treści, nawet jeśli kontroler widoku się nie zmienia – lilbyrdie

0

Spróbuj:

[self setTitle:@"Welcome"]; 

UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"Home" image:[UIImage imageNamed: image] tag:0]; 
[self setTabBarItem:item]; 
[item release]; 
+0

Hmm. To też nie działa. "Welcome" (tytuł dla siebie) jest zawsze taki sam dla tabBar. To bardzo frustrujące. Rozmawiałem z przyjacielem dev, który powiedział, że jedynym sposobem, w jaki był w stanie to zrobić inaczej, było ustawienie tytułu kontrolera nawigacji w IB, a następnie ustawienie self.title w kodzie. Ale to wydaje się dziwne. Jeśli nikt nie znajdzie tutaj rozwiązania, mogę zgłosić raport o błędzie firmie Apple. – runmad

+0

Nie interesuje Cię miejsce, w którym konfigurujesz pasek kart? Powyższy przykład pochodzi z metody init mojego kontrolera. Nie używam budowniczego interfejsu dla moich widoków (ich własnych lub utworzonych w loadView). To może być różnica. – Kevin

+0

Tak, używam IB, ale próbowałem zainicjować zakładki w każdym UIViewController (NavigationController). Zobaczę, co się stanie, jeśli umieściłem powyższy kod w metodzie init w UIViewController ... – runmad

0

Byłem też stoi ten sam problem, ale rozwiązać ten problem w taki sposób. Ustawiam tytuł i obraz tabBarItem zaraz po utworzeniu ich w appDelegate.

To co mam zrobić:

[viewController setTitle:@"controllerTitle"]; 
[[viewController tabBarItem] setTitle:@"Custome Title for tab"]; 
[[viewController tabBarItem] setImage:[UIImage imageNamed:@"tab.png"]]; 
52
//set nav item title 
self.navigationController.navigationBar.topItem.title = @"zurück"; 

to zrobił to dla mnie =) (nic z powyższych pracował)

Powiązane problemy