2017-03-28 16 views
0

私のアプリでは、英語とアラビア語の2つの言語を使用しています。言語を変更すると、スワイプからバックへのナビゲーションが以前の言語として機能します。スワイプからバックへのナビゲーションがローカライズアプリでは機能しない

例:英語スワイプは左から右に、アラビア語は右から左にスワイプします。しかし、私の場合、英語が右から左に飛び出し、アラビア語が左から右に飛び出していました。これは、言語を変更した後のアプリの最初の起動時に発生します。次回は正常に動作します。

言語を変更した後、ユーザーはアプリを再起動する必要があります。私は、誰もがいくつかの提案を与えることができるmain.mで

 if ([languageSelected isEqualToString:@"en_US"]) { 
      NSArray* languages = [NSArray arrayWithObjects:@"en", nil]; 
      [[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
      [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight]; 
     } else if ([languageSelected isEqualToString:@"ar"]) {     
      NSArray* languages = [NSArray arrayWithObjects:@"ar", nil]; 
      [[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
      [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft]; 
     } 

、言語を設定するコードの下にこれを使用しますか? ありがとうございます!私は解決策は、私たちはアプリの時に言語を設定する必要が見つかっ

+0

私は、ナビゲーションコントローラーでrootviewcontrollerを設定することと関係があると思います。 – Poles

+0

簡単に説明していただけますか? –

+0

あなたのviewcontrollerは起動時にナビゲーションコントローラーに組み込まれていないと思うので、スワイプからナビゲーションまではあなたのために働いていません。 – Poles

答えて

0

- (void)applicationWillTerminate:(UIApplication *)application { 
     if ([languageSelected isEqualToString:@"en_US"]) { 
      LocalizationSetLanguage(@"en"); 
      NSArray* languages = [NSArray arrayWithObjects:@"en", nil]; 
      [[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
      [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight]; 
     } else if ([languageSelected isEqualToString:@"ar"]) { 
      LocalizationSetLanguage(@"ar"); 
      NSArray* languages = [NSArray arrayWithObjects:@"ar", nil]; 
      [[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
      [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft]; 
     } 
} 

以下のように終了いくつかのいずれかがそれを使用することを願っています。

+0

素晴らしい仕事。しかし、このコードがどのようにナビゲーションを制御していますか?私はちょうど尋ねている... – Poles

+0

私はmain.mで言語を設定する前に、ナビゲーションに何らかの影響を及ぼしていないことがあるかもしれません。だから、私は終了時にそれをしました。 –

関連する問題