根据特定的本地化动态切换xib



我使用这些方法

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"ar"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize]; 

强制我的应用程序在运行时改变其本地化(当用户点击一个简单调用这些方法的按钮时),它工作完美,然而,这些方法不足以将整个XIB切换到新语言(在我的情况下,阿拉伯语),假设我有一个名为HomeViewController.xib的XIB,它在XCode中作为目录打开,一个包含两个文件的目录:HomeViewController.xib (English)HomeViewController.xib (Arabic)每个文件都有自己的布局根据语言(例如阿拉伯语xib有从右到左的控件布局..),我试图调用removeFromSuperView为当前控制器上的每个控件,然后调用addSubView的控件,但没有任何改变,应用程序仍然显示英文xib。

我怎么能让我的应用程序改变它的XIB到正确的本地化在运行时,当语言按钮点击。

注。当我在系统设置中更改整个模拟器本地化时,应用程序按预期工作,即它显示正确的本地化XIB。

在运行时决定将加载哪个xib,正如您所说的,当您更改模拟器设置时,您可以看到阿拉伯语屏幕。

所以xib的决定是基于你在用户默认设置中给出的,然后它检查区域设置并加载相应的区域设置xib

一些开发人员几乎解决了这个问题,请看看这个示例应用程序:https://rapidshare.com/files/3434929956/LangSwitch.zip它将整个XIB从阿拉伯语切换到英语,反之亦然,我现在卡住的是:我需要这个样本应用程序是选项卡,即有两个选项卡的选项卡栏控制器,每个选项卡包含一个视图控制器(你知道,通常的方式),任何人解决这个问题,我将非常感激他/她…等待着你们的帮助……

最新更新