2013-01-15 22 views
1

我有一個UITabBar。應用程序第一次運行時,用戶需要在模態視圖控制器中選擇一種語言。我使用目前的modalview在application didFinishLaunchingWithOptions首先用UITabBar更改App語言

[self.tabBarController presentModalViewController:languageVC animated:YES]; 

的問題是:在UITabbar已經被加載,所以在UITabbar的語言將不會改變。

我不能這樣做main.m(就像很多答案說的),因爲用戶需要首先做出選擇。

所以我試圖等待加載TabBar,直到用戶選擇了一種語言,但這也不起作用。

我見過另一個應用程序這樣做(雖然這個應用程序還沒有UITabbar),我的客戶真的需要它。但我不知道如何解決這個問題。用UITabBar甚至可能嗎?

+0

你爲什麼要問用戶選擇的語言,而不是使用系統語言? – Starbax

回答

0

您可以將AppDelegates didFinishLaunchingWithOptions中的語言設置爲全局參數。 然後你可以使用

self.tabbarItem.title = @"abc123"; 

你可以選擇一個文本變量設置在每個使用TabBar的ViewControllers的tabbarItems標題...

if ([language isEqualToString:@"german"])..... 
else if ([language isEqualToString:@"english"])..... 
+0

感謝您的回答。我試過了,它工作,歡呼!唯一的問題是我必須在ViewController的'init'中使用一些if。我猜不是很好的代碼,但它工作,所以我不抱怨。 – Knolraap

+0

但是,您應該更好地使用systemLanguage並讓操作系統使用NSLocalizedString來做這件事。 – Starbax

+0

是的,我知道,但我的客戶想要這樣。我們都知道多麼煩人的客戶可以;) – Knolraap