2012-05-22 2 views
0

Мне нужно создать приложение для iPhone, которое будет довольно простым приложением с несколькими формами, которые отправляют некоторые данные в веб-приложение. В первый раз, когда пользователь открывает приложение, ему должен быть представлен экран выбора языка.Измените язык приложения с помощью раскадровки

Я построил приложение с помощью раскадровки и все работает как надо, мнения выбора языка всплывает в первый раз, выбранный язык сохраняется в standardUserDefaults и т.д.

Теперь то, что это лучший способ реализуя второй язык (французский), так как это первый раз, когда я занимаюсь локализованными приложениями. После некоторого поиска я выяснил, как добавить новый язык/локализацию в раскадровку, и все работает по назначению, когда в настройках телефона выбран правильный язык. Теперь мне нужно сделать правильную раскадровку, когда пользователь нажимает на флаг страны в настройках приложения.

Когда пользователь нажимает на флаг, его выбор записывается в standardUserDefaults. И после этого я пытаюсь перейти к правильной раскадровке.

Некоторые код, который я нашел, что выглядит, что это может быть полезным является:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UIViewController *rootVC = [storyboard instantiateInitialViewController]; 

код не работает, так как я не знаю, как назвать французскую раскадровку.

Простой способ?

ответ

2

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

labelField.text = NSLocalizedString(@"key", nil); 

Вы должны Localized.strings файл с этим

"key" = "translated key"; 

приложение автоматически выберет язык устройство настроено для.

+0

Нужно иметь этот глупый экран выбора языка, потому что парень, который разработал приложение, любит то, как он выглядит, и хочет иметь этот вариант. Если есть способ, которым я могу реализовать ваше решение с возможностью изменения языка «на лету», это было бы потрясающе. –

+0

Конечно, вы можете реализовать это решение с помощью чего-то вроде [[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects: @ "de", @ "en", @ "fr", nil] forKey: @ "AppleLanguages"]; –

+1

Но попробуйте убедить парня, который разработал глупый интерфейс, может быть, он не знает об этом. –