Objective c iOS 10中的iOS阿拉伯语本地化问题

Objective c iOS 10中的iOS阿拉伯语本地化问题,objective-c,localization,ios10,Objective C,Localization,Ios10,我已经开发了应用程序,我需要提供两种语言的英语和阿拉伯语的支持。在应用程序中,有一个设置屏幕,用户可以将语言从英语更改为阿拉伯语,反之亦然 有关更多信息,请查看下面的屏幕截图 以及执行本地化的代码,我在这里刷新了情节提要以更新UI - (void)updateLanguage { UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewControll

我已经开发了应用程序,我需要提供两种语言的英语和阿拉伯语的支持。在应用程序中,有一个设置屏幕,用户可以将语言从英语更改为阿拉伯语,反之亦然

有关更多信息,请查看下面的屏幕截图

以及执行
本地化
的代码,我在这里刷新了
情节提要
以更新UI

- (void)updateLanguage {

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainNavigationController"];
    [[UIApplication sharedApplication].keyWindow setRootViewController:vc];
}
ios8
ios9
,它可以正常工作并更新用户界面,但在
ios10
中,它不会更新用户界面。有关更多信息,请查看下面的屏幕截图

如何在iOS 10中更新UI

下面是需要在iOS 10中更新的适当UI

注意:当应用程序从后台到前台时 工作正常


我找到了如何使用
UISemanticContentAttribute
根据语言选择更新布局的方法

目标C

if(IS_OS_10_OR_LATER) {

    if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"Ln"] isEqualToString:@"Ar"])
        [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];
    else
        [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
}
因为我已将当前语言选择存储在
NSUserDefaults
中,并相应地更新布局

SWIFT 3.0

UIView.appearance().semanticContentAttribute = .forceLeftToRight

你面临的问题是什么?哪个部分?实际上,用户界面在iOS 10中没有更新,你可能在上一个screenshot.HK中看到了,是上面的导航代码不起作用还是您的
uilables
没有更新语言?uilables正在根据语言的变化进行更新,但正如您在上一个屏幕截图中看到的,布局没有更新。无法了解您的问题,哪种布局没有更新?是否有可能使用日期选择器日期和时间?我没有正确地了解您,请详细说明。我有日期选择器。当我更改为阿拉伯语时,日期选择器的日期和时间必须在日期选择器内从右向左更改。我使用上述代码,但日期选择器内的日期和时间不会从右向左更改。如果英语语言的日期选择器内的日期和时间是“今天下午4:30”,则必须是“今天下午4:30”在阿拉伯语的日期选择器中。为此,我需要检查它,因为我的应用程序中没有日期选择器。