一.判断新版本应用是否第一次打开
对于一个应用的每一个版本,当用户第一次进入时往往有一段欢迎界面介绍软件新版本的新特性,因此每次用户打开软件就需要判断是不是第一次登录。

判断方法是每一次登录都要判断沙盒中存储的应用版本与当前应用的版本是否一致,一致说明登录过直接进入主页面,否则进入欢迎界面并把当前应用版本存储进沙盒中。
//版本号key
NSString*key= (NSString *)kCFBundleVersionKey;
//当前最新应用的版本号
NSString*version= [NSBundle mainBundle].infoDictionary[key];
//沙盒中存储的登录过的应用版本号
NSString*savedVersion= [[NSUserDefaults standardUserDefaults]objectForKey:key];
//判断是否第一次进入当前版本
if([version isEqualToString:savedVersion])
{
//不是第一次(进入主界面)
self.window.rootViewController=[[ESTabBarControlleralloc]init];
}
else
{
//保存版本号
[[NSUserDefaults standardUserDefaults]setObject:versionforKey:key];
[[NSUserDefaults standardUserDefaults]synchronize];
//第一次登录(显示新特性欢迎界面)
self.window.rootViewController=[[NewFeatureViewControlleralloc]init];
}
二.欢迎介绍界面
欢迎界面提供一系列介绍软件主要功能的画面,用户可滑动观看,滑倒最后一页是点击按钮进入应用主界面。可以使用一个UIScrollView简单实现:
//
// NewFeatureViewController.m
// JXHDemo
//
// Created by Xinhou Jiang on 6/7/16.
// Copyright © 2016 Jiangxh. All rights reserved.
// SCROLLVIEW展示新版本特性
#import "NewFeatureViewController.h"
// 滚动视图个数
#define ImageNum 3
@interface NewFeatureViewController ()<UIScrollViewDelegate>
@end
@implementation NewFeatureViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// 添加UIScrollView滚动视图
[self setupScrollView];
}
/**
* 添加UIScrollView滚动视图
*/
- (void)setupScrollView
{
// 创建UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] init];
[self.view addSubview:scrollView];
// 设置属性
scrollView.delegate = self;
scrollView.frame = self.view.bounds;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.pagingEnabled = YES;
CGSize size = scrollView.frame.size;
scrollView.contentSize = CGSizeMake(ImageNum * size.width, size.height);
// 添加UIImageView
for (NSInteger i = 0; i < ImageNum; i++)
{
NSString *imageName = [NSString stringWithFormat:@"new_feature_%ld",i + 1];
UIImage *image = [UIImage fullscreenImageWithName:imageName];
UIImageView *imageView = [[UIImageView alloc] init];
imageView.image = image;
imageView.frame = CGRectMake(i * size.width, 0, size.width, size.height);
[scrollView addSubview:imageView];
// 最后一张图片添加启动按钮
if (i == (ImageNum - 1))
{
// 开启交互
imageView.userInteractionEnabled = YES;
[self setupStartButton:imageView];
}
}
}
/**
* 添加按钮
*/
- (void)setupStartButton:(UIImageView*)inView
{
// 创建按钮
UIButton *startButton = [UIButton buttonWithType:UIButtonTypeCustom];
startButton.bounds = CGRectMake(0, 0, 150, 30);
[startButton setBackgroundColor:[UIColor yellowColor]];
[startButton setTitle:@"启动" forState:UIControlStateNormal];
[startButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
startButton.center = CGPointMake(self.view.center.x, self.view.frame.size.height * 0.9);
[startButton addTarget:self action:@selector(start) forControlEvents:UIControlEventTouchUpInside];
startButton.adjustsImageWhenHighlighted = NO;
startButton.selected = YES;
// 添加到最后一张图片上
[inView addSubview:startButton];
}
/**
* 启动
*/
- (void)start
{
// 进入主界面
self.view.window.rootViewController = [[MainViewController alloc] init];
}
@end