ios - 切换到一种语言并在 IOS 中重新加载 ViewController

标签 ios

我正在使用下面的代码切换到一种语言:

-(void) switchToLanguage:(NSString *)lang{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:lang, nil] 
          forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[sliderViewController refreshView];
}

不知道对不对。之后,在sliderViewController的刷新 View 函数中:

-(void)refreshView{
slideLabel.text = NSLocalizedString(@"To Menu", @"To Menu");
slogan.text = NSLocalizedString(@"Categories", @"Categories");
}

但它不起作用。我哪里错了?

最佳答案

设置 AppleLanguages 键仅在调用 UIApplicationMain 之前在 main.m 文件中起作用。如果您在任何其他时间尝试更改它的值,它将不起作用。

如果您希望支持在运行时更改语言,您将不得不推出自己的本地化功能。

关于ios - 切换到一种语言并在 IOS 中重新加载 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011106/

相关文章:

iphone - 应用程序因 SKPSMTPMessage 类而崩溃

ios - 设备方向在标签栏应用程序中启动所有 View Controller

iOS 圆形渐变

iphone - 向单元格添加阴影会导致滚动延迟

ios - 不使用 Interface Builder 制作通用应用程序

iOS - PassBook 自动更新

ios - UIViewController 上的 BOOL 属性会自行更改

ios - 类属性未在 Swift 2 中的闭包内分配

iphone - 发现多个名为 'tag' 的方法结果不匹配

iphone - Facebook 墙贴在 Facebook 注册 iOS-facebook SDK 3.2 之后