有时我们需要判断用户安装了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