2013-04-25 9 views
6

Chciałbym tylko wiedzieć, jak ustawić tytuł elementu paska karty przy użyciu UITabBarSystemItem?Jak ustawić tytuł za pomocą UITabbarsystemitem

co zrobiłem:

self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];

Tak, aby zmienić tytuł domyślnie zamiast "Polecane" (z powodu UITabBarSystemItemFeatured obiektu), napisałem:

self.tabBarItem.title = @"Actu";

Więc w mojej głowie powinienem mieć "Actu" jako tytuł zamiast "Polecane".

Ale to nic nie zmienia, tytuł pozostaje "Wyróżniony" (domyślny tytuł).

Próbowałem również:

[[self.tabBarController.tabBar.items objectAtIndex:0] setTitle:NSLocalizedString(@"Actu", @"Actu")];

(bo to tabbaritem jest na indeksie 0), ale nic się nie zmienia.

A może taka modyfikacja nie jest możliwa przy użyciu obiektów UITabBarSystemItem?

Mam nadzieję, że jest wystarczająco dobrze wyjaśnione:/

PS: Przepraszam za mój angielski i coś jeszcze źle, 1st postu kiedykolwiek ...:/

Odpowiedz

4

Kiedy UITabBarItem jest initalized użyciu initWithTabBarSystemItem:tag: nie można później zmienić obraz lub tytuł własności.

Źródło: iOS Development Documentation

+0

Ok, więc mam importować własne zdjęcie jeśli chcę ustawić tytuł. Dzięki za szybką odpowiedź! – Lucien

0

Już napisałem, że:

... taka modyfikacja nie jest możliwe przy użyciu UITabBarSystemItem obiektów ...

te mają title i image właściwości ustawione na nil, więc mają te wartości zapisane w niektórych wewnętrznych własnościach prywatnych.

także docs powiedzieć:

-initWithTabBarSystemItem:tag:
tytuł obrazu i właściwości zwróconego przedmiotu nie można później zmienić.

-3

Zdaję sobie sprawę, to jest stary, ale być może pomogłoby to kogoś innego, który chce, aby to zrobić. Utwórz tabBarItem z elementu systemowego, jak wskazano powyżej. Następnie utwórz kolejny tabBarItem, jakbyś miał niestandardową ikonę i skopiuj obraz z elementu systemowego.

 UITabBarItem* systemItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0]; 
     UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:theNameIWantToUse image:systemItem.image tag:0]; 
+3

To nie zadziała. systemItem.image będzie tutaj zerowy. – LightningStryk

+0

Tak, moja odpowiedź jest niepoprawna, dowiedziałem się o wiele później. –

+0

systemItem.title również nie występuje. –

0

Właściwie jest to możliwe, można wykorzystać metodę _setInternalTitle: z private API.

[self.tabBarItem setValue:@"Categories" forKey:@"internalTitle"]; 

ostrożności: używać go tylko dla testu buduje.

2

Możesz użyć KVC.

[self.tabBarItem.setValue("YourTitle", forKey: "internalTitle")];