2011-06-15 41 views
6

Uygulamam bir sekme çubuğu mimarisine dayanıyor. Kolay bir uluslararasılaştırma teknisyenine sahip olmak için XIB dosyalarında herhangi bir dize yazmam. viewdidload, görünümlerdeki dizeleri programlı olarak değiştirmeye izin verir.UITabBarItem başlığını programlı olarak ayarlayın?

Uygulamam başladığında, 4 sekmeyi görebiliyorum. Ancak aslında sadece ilk kişi kendi denetleyicisini yükler. Diğerleri, kullanıcının tıklamasının yüklenmesini bekler. Sekmeler başlığı [self setTitle: @ "Mouhahaha"] kullanılarak değiştirilebilir; Yüklenen görünüm denetleyicisinin viewDidLoad.

Uluslararasılaştırma tekniğimi kullanılabilir durumda tutmak istiyorsanız, XIB'imde tabbar öğelerinin adını belirlemiyorum. Ancak, tüm sekmelerde 'view controllers' yüklenmemiş gibi, bazı sekmeler için boş başlıklara sahibim. Doğru başlık, yalnızca kullanıcı sekmeyi tıkladığında ayarlanır.

Her başlık için bu başlığı programsal olarak ayarlamanın bir yolunu arıyorum. Ipuçların var mı?

Çok teşekkürler.

kheraud

cevap

1

sonra, UITabBarController bir örneğini yapmak yapmak Eğer içinde istediğiniz herhangi görüşlerini Alloc ardından UITabBarController görünümlerini belirleme gereken her şey. TabBarController'ınızın görünür olandan olduğundan emin olun. Ayrıca, sekme çubuğunuzda istediğiniz herhangi bir viewControllers'ın #import ile içe aktarıldığından emin olun.

UITabBarController *c = [self tabBarController]; 
SecondViewController *s = [[SecondViewController alloc] init]; 
[s setTitle:@"Whatever"]; 
c.viewControllers = [NSArray arrayWithObjects:self, s, nil]; 
[s release]; 

ayrılan ilk kontrolörün viewDidLoad yönteminde koy.

Alternatif olarak, ApplicationDelegate uygulamasının TabBarController'ı ayarlama şeklini değiştirebilirdiniz, ancak buna katılmayacağım.

Umut bu storyboard ile programlı birlikte bunu yapmanın benim tercih edilen yöntem UITabBarController bir alt sınıfını yapmaktır

+0

geçersiz – iwalktheline

+0

Eh, bazı t ile karşılaştırıldığında Yaptığı diğer şeyler, bu bir cakewalk :-) –

+0

ViewController yerine NavigationViewController varsa ne olur. – dreamBegin

2

, 3 UIViewController ilişkilerle yeni alt sınıfı (kullanmak benim storyboard benim sekme çubuğu denetleyicisi sahne var yardımcı olur sekme çubuğu aşağıda durumda) istenen görünüm kontrolöre kontrolör ve sonra Apple biz tabbaritem erişmek istemiyor sanırım ... o inşaat ama bazı etiketleri değiştirmek için sadece çok karmaşık viewWillAppear:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    NSArray* titleKeys = [NSArray arrayWithObjects:@"top places", 
                @"localizablekey1", 
                @"localizablekey2", 
                @"localizablekey3", 
                nil]; 
    [super viewWillAppear:animated]; 
    int count = 0; for (UIViewController* viewController in self.viewControllers) 
     viewController.tabBarItem.title = NSLocalizedString([titleKeys objectAtIndex:count++], nil); 
} 
İlgili konular