美文网首页ios开发专题
ios 内部语言切换

ios 内部语言切换

作者: zl520k | 来源:发表于2018-06-19 11:43 被阅读7次

    首先,要获取本机的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 内部语言切换

        本文链接:https://www.haomeiwen.com/subject/cglaeftx.html