首先,要获取本机的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;
}];
如果写在外面,那不会调用的。
网友评论