我使用这些方法
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"ar"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
强制我的应用程序在运行时更改其本地化(当用户点击一个简单调用这些方法的按钮时)并且它运行良好,但是,这些方法不足以将整个 XIB 切换到新语言(在我的case,阿拉伯语),假设我有一个名为 XCode 的 XIBHomeViewController.xib
作为 XCode 中的一个目录打开,一个包含两个文件的目录:HomeViewController.xib (English)
并且 HomeViewController.xib (Arabic)
每个文件根据语言都有自己的布局(例如,阿拉伯语 xib 具有从右到左的控件布局。 .),我尝试调用removeFromSuperView
当前控制器上的每个控件,然后调用addSubView
控件,但没有任何改变,应用程序仍显示英文 XIB。
当点击该语言按钮时,如何让我的应用程序在运行时将其 XIB 更改为正确的本地化版本。
ps 当我在系统设置中更改整个模拟器本地化时,应用程序按预期工作,即它显示正确的本地化 XIB。