2016-07-07 88 views
1

當用戶登錄時,我從服務器獲取其語言代碼。在iOS 9中強制更改語言

然後我試圖強行將此語言設置如下:

let defaults = NSUserDefaults.standardUserDefaults() 
defaults.setObject(["de"], forKey: "AppleLanguages") 
defaults.synchronize() 

但這種變化不會立即反映。

如果我重新啓動應用程序,然後正常工作

我也試着重裝根視圖,但仍然沒有工作

我怎麼能立即看到改變?

感謝您的時間:)

+0

這可能有幫助,你試過嗎? http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language/20257557#20257557 –

回答

0

你需要UIAppdelegate創建的實例之前設置在main()函數的語言首選項。

但是,只有當用戶登錄時纔會獲得語言首選項,它不會在運行時更改使用的語言。

所以我沒有看到任何方式可以使用戶在登錄後立即開始工作,而不是讓用戶重新啓動應用程序。 (另一種選擇是強行殺死該應用程序,但這當然會是非常糟糕的用戶體驗,並且如果評論者發現它會冒着蘋果拒絕的風險)