版本記錄
版本號 | 時間 |
---|---|
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進行啟動的邏輯處理,包括了版本驗證和登錄頁跳轉等一系列的邏輯。