Ios 向后滑动导航不适用于本地化应用程序

Ios 向后滑动导航不适用于本地化应用程序,ios,localization,uinavigationcontroller,Ios,Localization,Uinavigationcontroller,在我的应用程序中,我使用英语和阿拉伯语两种语言。当我将语言从一种更改为另一种时,“向后滑动”导航将与以前的语言一样工作 英语从左向右滑动,阿拉伯语从右向左滑动。但在我的例子中,英语从右到左,阿拉伯语从左到右。这是在更改语言后首次启动应用程序。下一次它的工作很好 更改语言后,用户需要重新启动应用程序。我使用下面的代码来设置语言 大体上 if ([languageSelected isEqualToString:@"en_US"]) { NSArray* la

在我的应用程序中,我使用英语和阿拉伯语两种语言。当我将语言从一种更改为另一种时,“向后滑动”导航将与以前的语言一样工作

英语从左向右滑动,阿拉伯语从右向左滑动。但在我的例子中,英语从右到左,阿拉伯语从左到右。这是在更改语言后首次启动应用程序。下一次它的工作很好

更改语言后,用户需要重新启动应用程序。我使用下面的代码来设置语言

大体上

        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];
        }
谁能给点建议吗?
提前谢谢

我找到了解决方案,我们需要在应用程序终止时设置语言,如下所示

- (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];
        }
}

希望有人能使用它。

我认为这与将rootviewcontroller设置为navigationcontroller有关。请您简要解释一下好吗?我认为您的viewcontroller在启动时没有嵌入navigationcontroller,这就是为什么“向后滑动导航”对您不起作用的原因。如果没有嵌入,请按view控制器也不能正常工作吗?但是它工作得很好,实际上没有完整的代码,我面临着困难。但我可以肯定地告诉你上面提到的代码与导航无关。干得好。但是这个代码是如何控制导航的呢?我只是问…在我设置main中的语言之前。m对导航没有任何影响,可能需要一些时间。所以我在终止协议时就这么做了。