我遇到了应用程序中语言设置的问题,用户可以随时更改它,但是..
当我使用此代码更改它时,例如
[[NSUserDefaults standardUserDefaults] setObject:@[@"de", @"en", @"it"] forKey:@"AppleLanguages"];
在重启应用程序之前它没有效果becuase bundle已经在appDelegate中加载了,对吗?
所以我尝试了这个解决方案
https://stackoverflow.com/a/20257557/2839104
但已经加载的viewControllers没有影响,所以......
如何在不重新启动应用程序语言的情况下更新应用程序语言,而无需使用其他内容更改NSLog
用法?有什么办法吗?
我将不胜感激。
答案 0 :(得分:1)
您必须实现一个类,该类将加载与项目中可用语言相对应的每个localizable.string。
然后创建一个viewController以允许选择一种新语言。
当用户选择一种语言时,您必须重新加载语言标签并通知每个控制器它必须自行刷新。
我在我的一些应用程序中做了这个。
我创建了一个宏来将我的viewController作为委托添加到languageManager。