有时我们需要判断用户安装了app的新版本后,是否是第一次打开此版本的app.如果是第一次打开,那么我们需要给用户展示新版本的新特性界面.如果不是第一次打开,那么就直接跳到主界面即可.
如下代码,是死代码,可以直接挪用到自己的app中使用即可.
- (UIViewController*)pickRootViewController
{
// 刚开始运行的时候
// 如果没有这个appVersion 那么就说明是第一次运行
// 如果有但是这个版本号和当前不一致 那么说明是更新的
// 获取ud对象
NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
// 获取当前的手机应用的版本号
NSDictionary* dict = [NSBundle mainBundle].infoDictionary;
NSString* appVersion = dict[@"CFBundleShortVersionString"];
// 获取上一次手机的版本号
NSString* lastVersion = [ud objectForKey:@"appVersion"];
UIViewController* vc;
if (![lastVersion isEqualToString:appVersion]) { // 需要改
// 那么就说明是第一次运行 是更新的
// 显示新特性控制器
// 创建新特性的控制器
WYGuideController* guide = [[WYGuideController alloc] init];
vc = guide;
}
else {
// 显示tabbar
// 创建tabbarvc
WYMainTabController* tabbarVC = [[WYMainTabController alloc] init];
vc = tabbarVC;
}
// 获取info.plist
[ud setObject:appVersion forKey:@"appVersion"];
[ud synchronize];
return vc;
{
// 刚开始运行的时候
// 如果没有这个appVersion 那么就说明是第一次运行
// 如果有但是这个版本号和当前不一致 那么说明是更新的
// 获取ud对象
NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
// 获取当前的手机应用的版本号
NSDictionary* dict = [NSBundle mainBundle].infoDictionary;
NSString* appVersion = dict[@"CFBundleShortVersionString"];
// 获取上一次手机的版本号
NSString* lastVersion = [ud objectForKey:@"appVersion"];
UIViewController* vc;
if (![lastVersion isEqualToString:appVersion]) { // 需要改
// 那么就说明是第一次运行 是更新的
// 显示新特性控制器
// 创建新特性的控制器
WYGuideController* guide = [[WYGuideController alloc] init];
vc = guide;
}
else {
// 显示tabbar
// 创建tabbarvc
WYMainTabController* tabbarVC = [[WYMainTabController alloc] init];
vc = tabbarVC;
}
// 获取info.plist
[ud setObject:appVersion forKey:@"appVersion"];
[ud synchronize];
return vc;
}
将上述方法卸写在appDelegate中,将rootController设置为此方法的返回值,即可实现版本控制。此代码为死代码,可以直接CV