版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.08.06 |
前言
在app中,很多时候都需要在输入框里面输入东西,这个时候键盘弹出,不可避免的就会有遮挡页面的问题,这一篇就讲一下解决键盘遮挡页面的方法。感兴趣的可以看看我写的其他小技巧。
1. 实用小技巧(一):UIScrollView中上下左右滚动方向的判断
2. 实用小技巧(二):屏幕横竖屏的判断和相关逻辑
3.实用小技巧(三):点击手势屏蔽子视图的响应
4.实用小技巧(四):动态的增删标签视图
5.实用小技巧(五):通过相册或者相机更改图标
6.实用小技巧(六):打印ios里所有字体
7. 实用小技巧(七):UITableViewCell自适应行高的计算
8. 实用小技巧(八):数字余额显示的分隔
9.实用小技巧(九):类头条模糊背景的实现
10.实用小技巧(十):晃动手机换后台服务器网络
11.实用小技巧(十一):scrollView及其子类显示的一些异常处理
12.实用小技巧(十二):头像图片缩放以及保存到相册简单功能的实现
13.实用小技巧(十三):一种类酷我音乐盒动画实现
14.实用小技巧(十四):生成跳往applestore指定app的方法
15.实用小技巧(十五):左侧向右滑动返回上一级控制器
16.实用小技巧(十六):获取设备信息
17.实用小技巧(十七):清除缓存目录
18.实用小技巧(十八):取出gif图的每一帧
19.实用小技巧(十九):获取相机和麦克风权限
20.实用小技巧(二十):游客模式的实现
21.实用小技巧(二十一):版本检测的实现
22.实用小技巧(二十二):键盘遮挡问题
23. 实用小技巧(二十三):获取闪光灯的控制
功能要求
当我们在启动一款app的时候,我们都需要做一些逻辑判断,以跳转到不同的页面,主要如下:
- 先判断版本号是否一致。
- 如果版本号一致,就直接判断是否已登录,如果没有登录就跳转到登录界面,如果已登录直接跳转到tabbar主页面。
- 如果版本号不一致,那么就显示新特性引导页界面。
功能实现
下面我们就模拟一下这个app启动页面逻辑,直接看代码,代码里会提供解释和说明。
- 根据判断逻辑返回的控制器,作为window的根控制器
self.window = [[UIWindow alloc] initWithFrame:kJJCommonScreenBounds];
//根据判断逻辑返回的控制器,作为window的根控制器
UIViewController *mainVC = [self pickViewController];
self.window.rootViewController = mainVC;
[self.window makeKeyAndVisible];
- 这里是主要的逻辑判断,判断程序的版本和存储的版本是否相同
- (UIViewController *)pickViewController
{
//判断版本号是否一致
NSLog(@"版本号:%@----------%@", [self loadAppVersion], [self loadSavedAppVersion]);
if ([[self loadAppVersion] isEqualToString:[self loadSavedAppVersion]]) {
//如果一致,判断是否登陆
if ([JJAppInfo isLogin]) {
//如果登陆,跳到主页面
return [JJmianTabBarVC sharedInstance];
}
else {
//如果未登录,跳到登陆界面
return [[JJNavigationVC alloc] initWithRootViewController:[[JJLoginVC alloc] init]];
}
} else {
//如果不是,则显示新特性
//将新版本的appVersion存储到本地
[self saveAppVersion:[self loadAppVersion]];
return [JJNewGuideCollectionVC new];
}
}
- 新的版本的存储
这里是在AppDelegate中进行存储
- (void)saveAppVersion:(NSString *)version
{
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[ud setObject:version forKey:@"appVersion"];
}
- 程序版本和存储版本的判断逻辑
//获取当前版本号
- (NSString *)loadAppVersion
{
//获取info
NSDictionary *info = [NSBundle mainBundle].infoDictionary;
//返回当前程序的版本号
return info[@"CFBundleShortVersionString"];
}
//获取沙盒存储的版本号
- (NSString *)loadSavedAppVersion
{
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
return [ud objectForKey:@"appVersion"];
}
功能验证
这里就给大家验证了,以前亲测可以的,大家感兴趣的可以自己尝试下。
后记
这个逻辑就一般的app进行启动的逻辑处理,包括了版本验证和登录页跳转等一系列的逻辑。