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;

        }];


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自://www.greatytc.com/p/10b2323f502e 1、禁止手机睡眠 [UIApp...
    aggie1024阅读 7,668评论 0 6
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 4,813评论 1 6
  • 1、禁止手机睡眠 [UIApplication sharedApplication].idleTimerDisab...
    小小夕舞阅读 5,405评论 1 1
  • 我在这里, 你在来的路上。 感谢你一路的坚持与寻觅, 相信世界上总会有个对的人。 不早不晚,遇见彼此。 舒心、开心...
    天边月白阅读 3,060评论 0 0
  • 不再喜欢倾诉的年纪, 慢慢学会了接受现实。 脚踏实地的去生活, 偶尔夜深看看周星驰的电影。 一个人对着画面傻笑, ...
    花少颜阅读 2,224评论 13 8