2013-01-10 10 views
8

に局在するストーリーボードの切り替え私は(実行時に)言語のiPhoneの設定を変更することなく、英語のストーリーボードにアラビア語のローカライズストーリーボードから切り替えることができますどのように2つの言語(アラビア語/英語)でストーリーボードを使用してiPhoneアプリケーションを持って実行

+1

:私はあなたのコードの下に次のようにそれを行うことができます解決しました。正直なところ、言語を変更することは、システム認可された唯一のローカリゼーションの方法であり、独自の解決策を書いていません。 – CodaFi

+0

私はあなたに同意しません私は実行時にストーリーボード – wod

+0

ではなくxibでアプリケーション言語を変更しましたので、何を試しましたか? – CodaFi

答えて

8

カスタムローカライズされた文字列のセットを照会し、その後、あなたのストーリーボードをローカライズしないでください

UIStoryboard *storyBoard; 
if ([language isEqualToString:@"ar"]) { 
    lan = [[NSLocale preferredLanguages] objectAtIndex:0]; 
    storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5Arabic" bundle:bnd]; 
} 
else if([language isEqualToString:@"en"]) { 
    NSLog(@"DDD "); 
    lan = [[NSLocale preferredLanguages] objectAtIndex:20]; 
    storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5English" bundle:bnd]; 
} 
NSBundle *bnd = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:lan ofType:@"lproj" ]]; 



UIViewController *initViewController = [storyBoard instantiateInitialViewController]; 
[self.window setRootViewController:initViewController]; 
+0

こんにちは!私はこの質問に対して同等の答えを得ましたが、実行時に言語を変更して、必要なストーリーボードイメージを再ロードするとログメッセージがロードされません:識別子 "(null)を持つバンドルのペン先から参照される" readability.png " ) " –

+2

ああ、これはストーリーボードのローカライゼーションのバグです。したがって、ローカリゼーションを使わずに別のストーリーボードを作成する必要があります。 – wod

+0

私の解決策を更新しました – wod