ładowanie obrazów z właściwego pakietu podczas lokalizowania storyboardów
Próbuję dodać opcję umożliwiającą użytkownikowi przełączanie się między językiem arabskim i angielskim z poziomu aplikacji (bez konieczności ponownego ustawiania języka całego iPhone'a), udało mi się to zrobić poprawnie, używając tej metody w AppDelegate plik .m:
-(void)switchTolanguage:(NSString *)lang{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:lang] forKey:@"AppleLanguages"];
NSBundle *bnd = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:lang ofType:@"lproj" ]];
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:bnd];
UIViewController *initViewController = [storyBoard instantiateInitialViewController];
self.window.rootViewController = initViewController;
}
Umieściłem dwaUIButtons
na jednym z kontrolerów widoku w aplikacji, aby przetestować metodę i działa dobrze: wszystkoUILabels
, łańcuchy itp ... w nowej załadowanej (zlokalizowanej) serii ujęć pojawiają się z poprawnym wybranym językiem, ale zjeden wyjątek: nowy załadowany storyboard nie pobiera (ładuje) swoich zlokalizowanych obrazów, pobiera obrazy do starego storyboardu (stary pakiet), tj. jeśli aplikacja jest aktualnie uruchomiona na pakiecie angielskim, a użytkownik stuknął w przycisk, który przełącza język na arabski , aplikacja pojawi się z poprawnymi arabskimi kontrolkami i łańcuchami, ale z angielskimi obrazami, przełącz się z powrotem na angielski wszystko będzie OK (angielskie ciągi, etykiety i obrazy ...)
Oto jak moja storyboard jest zlokalizowana:
a oto, jak każdy obraz jest zlokalizowany:
Jak mogę załadować poprawne obrazy pakietów, gdy użytkownik przełącza język aplikacji?
AKTUALIZACJA:
Oto link do przykładowego projektu, co mam na myśli, uruchom próbkę, a zauważysz, że po zmianie języka z poziomu aplikacji zauważysz, że obraz nie jest zmienny ... i zauważysz również, że zlokalizowana storyboard nie ładuje się właściwy obraz w edytorze projektu ...
P.S. nie dodawaj komentarzy, dlaczego używam takiego scenariusza do zmiany języka, ponieważ jest to wymaganie klienta.