Laden von Bildern aus dem richtigen Bundle beim Lokalisieren von Storyboards
Ich habe versucht, dem Benutzer eine Option hinzuzufügen, mit der er von der App aus zwischen Arabisch und Englisch wechseln kann (ohne die Sprache des gesamten iPhones neu einstellen zu müssen). Ich habe es mit dieser Methode im AppDelegate richtig gemacht .m Datei:
-(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;
}
Ich habe zwei platziertUIButtons
auf einem der view controller in der app die methode zu testen und es hat gut funktioniert: allesUILabels
, Strings, etc ... werden im neu geladenen (lokalisierten) Storyboard mit der richtigen ausgewählten Sprache angezeigt, jedoch miteine Ausnahme: Das neu geladene Storyboard nimmt die lokalisierten Bilder nicht auf (lädt sie), sondern nimmt die Bilder für das alte Storyboard (altes Bundle) auf, dh, wenn die App derzeit im englischen Bundle ausgeführt wird und der Benutzer auf die Schaltfläche tippt, mit der die Sprache auf Arabisch umgestellt wird , die App wird mit den richtigen arabischen Steuerelementen und Zeichenfolgen angezeigt, aber mit englischen Bildern, wechseln Sie zurück zu Englisch, alles wird in Ordnung sein (englische Zeichenfolgen, Beschriftungen und Bilder ...)
So wird mein Storyboard lokalisiert:
Und so wird jedes Bild lokalisiert:
Wie kann ich die richtigen Bundle-Images laden, wenn der Benutzer die App-Sprache wechselt?
AKTUALISIEREN:
Hier ist ein Link Wenn Sie ein Beispielprojekt ausführen, werden Sie feststellen, dass die Sprache in der App nicht geändert werden kann. Außerdem wird das lokalisierte Storyboard nicht geladen das richtige Bild in seinem Design-Editor ...
P.S. Fügen Sie keine Kommentare hinzu, warum ich ein solches Szenario verwende, um die Sprache zu wechseln, da dies eine Kundenanforderung ist.