переключение XIB на лету в соответствии с конкретной локализацией - PullRequest
1 голос
/ 25 декабря 2011

Я использую эти методы

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

, чтобы вынудить мое приложение изменить свою локализацию во время выполнения (когда пользователь нажимает кнопку, которая просто вызывает эти методы), и она работает отлично, однако эти методынедостаточно переключить весь XIB на новый язык (в моем случае это арабский язык), поскольку у меня есть один XIB с именем HomeViewController.xib, который открывается как каталог в XCode, каталог из двух файлов: HomeViewController.xib (English) иHomeViewController.xib (Arabic) каждый файл имеет свою собственную разметку в соответствии с языком (например, арабский XIB имеет разметку элементов управления справа налево ...), я попытался вызвать removeFromSuperView для каждого элемента управления на текущем контроллере, а затем вызвать addSubViewдля элементов управления, но ничего не изменилось, приложение по-прежнему отображает английский XIB.

как я могу позволить своему приложению изменять свой XIB на правильный локализованный во время выполнения, когда нажата эта языковая кнопка.

ps, когда я меняю всю локализацию симулятора в системных настройках, приложение работает как положено, то есть отображает правильный локализованный XIB.

Ответы [ 2 ]

2 голосов
/ 25 декабря 2011

Во время выполнения определяется, какой xib будет загружен, так как вы говорите, что при изменении настройки симулятора вы можете видеть арабский экран.

Таким образом, решение xib основано на том, что вы указали в своих пользовательских настройках по умолчанию, затем оно проверяет локаль и соответствует этой локали xib.

0 голосов
/ 26 декабря 2011

Некоторые разработчики почти решили проблему, пожалуйста, посмотрите на этот пример приложения: https://rapidshare.com/files/3434929956/LangSwitch.zip он переключает весь XIB на лету с арабского на английский и наоборот, что я застрял прямо сейчас: мне нужно, чтобы этот образец приложения был с вкладками, то есть с контроллером панели вкладок с двумя вкладками, каждая вкладка содержит одно представление контроллер (вы знаете, как обычно), кто-нибудь решит эту проблему, я был бы ооочень благодарен ему / ей ... жду вашей помощи, ребята ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...