2012-12-11 35 views
4

我想更改我的應用程序的語言。目前我正在通過以下方式進行操作。 我有兩個按鈕,它們在NSUserDefaults中更改語言。但在此之前,我的應用程序需要重新啓動它。使用按鈕更改iphone應用程序語言並且無需重新啓動應用程序

這是我的代碼。

- (IBAction)changeDutch:(id)sender { 
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"nl", @"en", nil] forKey:@"AppleLanguages"]; 

} 
- (IBAction)changeEnglish:(id)sender { 
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", @"nl", nil] forKey:@"AppleLanguages"]; 
} 

這工作正常。但我不想每次重新啓動我的應用程序。誰能告訴我該怎麼做?

親切的問候!

+0

嘗試關注此解決方案http://stackoverflow.com/a/20257557/1013897 其幫助我 –

回答

1

如果您的數據是在UITableView那麼您可以使用[tableView reloadData];。 您甚至可以在常量,密鑰中定義的appDelegate中設置應用程序語言,然後在IBAction上調用這些鍵,然後將這些鍵存儲在NSUserDefaults中。

0

您使用哪種方式進行本地化,我的意思是要求的是我們只保留文件夾結構或從Db中取得的本機。

不管怎麼說,如果你使用原生的部分,再看看下面的鏈接可以幫助你,因爲我認爲我們可以更換語言選項有:

「http://stackoverflow.com/questions/3910244 (坦率地說,我不知道)

但是,如果你使用db部分,那麼在這種情況下,你只是使用一些基於枚舉的機智,並根據只是獲取你的數據,這種方法很簡單,因爲我已經在這麼多的應用程序中應用。

無論如何,只要回到我身邊。 :)

1

有改變應用程序的語言無重新提到這個tutorial post我已經嘗試過在一個應用程序的方法和它的作品大多但仍,如果你正在使用的系統的項目,如More選項卡中的TabBar,對MoreNavigationControllerCancel按鈕Edit按鈕在UISearchBar等等,沒有重新啓動應用程序的文本不能更改爲選定的語言。如果沒有這樣的項目是由iOS控制的,而不是您的應用程序,這對您來說是一個完美的解決方案。

相關問題