ios 内部语言切换

首先,要获取本机的app的语言,如果没有设置,就获取系统的语言列表,目前,我使用的是en和zh-Hans,两种语言进行切换。语言切换的主要就是

 [[NSUserDefaults standardUserDefaults] setObject:string forKey:@"appLanguage"];

    [[NSUserDefaults standardUserDefaults] synchronize];

进行设置。还要在本app中进行重新进行页面创建。

strongSelf.view=nil;的时候,会重新创建view。

其次,要使用如下的方法:

#define kBundle  [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"] ofType:@"lproj"]]

#define kLocalizedStringForKey(string,val) [kBundle localizedStringForKey:string value:@""table:nil]

进行获取对应语言文件。因为语言文件在工程的Finder文件夹下,都是以lproj形式存在的。

如果使用self presentViewController:vc animated:NO completion函数的时候,一定要这样写:

       __weaktypeof(self) weakSelf =self;

        ThirdViewController *vc = [ThirdViewController new];

        [self presentViewController:vc animated:NO completion:^{

            __strongtypeof(weakSelf) strongSelf = weakSelf;

            strongSelf.view=nil;

        }];


如果写在外面,那不会调用的。

你可能感兴趣的:(ios 内部语言切换)