Я использую эти методы
[[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.