實(shí)用小技巧(二十四):APP頁面開啟跳轉(zhuǎn)邏輯處理

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.08.06

前言

在app中,很多時(shí)候都需要在輸入框里面輸入東西,這個(gè)時(shí)候鍵盤彈出,不可避免的就會(huì)有遮擋頁面的問題,這一篇就講一下解決鍵盤遮擋頁面的方法。感興趣的可以看看我寫的其他小技巧。
1. 實(shí)用小技巧(一):UIScrollView中上下左右滾動(dòng)方向的判斷
2. 實(shí)用小技巧(二):屏幕橫豎屏的判斷和相關(guān)邏輯
3.實(shí)用小技巧(三):點(diǎn)擊手勢(shì)屏蔽子視圖的響應(yīng)
4.實(shí)用小技巧(四):動(dòng)態(tài)的增刪標(biāo)簽視圖
5.實(shí)用小技巧(五):通過相冊(cè)或者相機(jī)更改圖標(biāo)
6.實(shí)用小技巧(六):打印ios里所有字體
7. 實(shí)用小技巧(七):UITableViewCell自適應(yīng)行高的計(jì)算
8. 實(shí)用小技巧(八):數(shù)字余額顯示的分隔
9.實(shí)用小技巧(九):類頭條模糊背景的實(shí)現(xiàn)
10.實(shí)用小技巧(十):晃動(dòng)手機(jī)換后臺(tái)服務(wù)器網(wǎng)絡(luò)
11.實(shí)用小技巧(十一):scrollView及其子類顯示的一些異常處理
12.實(shí)用小技巧(十二):頭像圖片縮放以及保存到相冊(cè)簡單功能的實(shí)現(xiàn)
13.實(shí)用小技巧(十三):一種類酷我音樂盒動(dòng)畫實(shí)現(xiàn)
14.實(shí)用小技巧(十四):生成跳往applestore指定app的方法
15.實(shí)用小技巧(十五):左側(cè)向右滑動(dòng)返回上一級(jí)控制器
16.實(shí)用小技巧(十六):獲取設(shè)備信息
17.實(shí)用小技巧(十七):清除緩存目錄
18.實(shí)用小技巧(十八):取出gif圖的每一幀
19.實(shí)用小技巧(十九):獲取相機(jī)和麥克風(fēng)權(quán)限
20.實(shí)用小技巧(二十):游客模式的實(shí)現(xiàn)
21.實(shí)用小技巧(二十一):版本檢測(cè)的實(shí)現(xiàn)
22.實(shí)用小技巧(二十二):鍵盤遮擋問題
23. 實(shí)用小技巧(二十三):獲取閃光燈的控制

功能要求

當(dāng)我們?cè)趩?dòng)一款app的時(shí)候,我們都需要做一些邏輯判斷,以跳轉(zhuǎn)到不同的頁面,主要如下:

  • 先判斷版本號(hào)是否一致。
  • 如果版本號(hào)一致,就直接判斷是否已登錄,如果沒有登錄就跳轉(zhuǎn)到登錄界面,如果已登錄直接跳轉(zhuǎn)到tabbar主頁面。
  • 如果版本號(hào)不一致,那么就顯示新特性引導(dǎo)頁界面。

功能實(shí)現(xiàn)

下面我們就模擬一下這個(gè)app啟動(dòng)頁面邏輯,直接看代碼,代碼里會(huì)提供解釋和說明。

  • 根據(jù)判斷邏輯返回的控制器,作為window的根控制器
    self.window = [[UIWindow alloc] initWithFrame:kJJCommonScreenBounds];

    //根據(jù)判斷邏輯返回的控制器,作為window的根控制器
    UIViewController *mainVC = [self pickViewController];
    self.window.rootViewController = mainVC;
    [self.window makeKeyAndVisible];
  • 這里是主要的邏輯判斷,判斷程序的版本和存儲(chǔ)的版本是否相同
- (UIViewController *)pickViewController 
{
    //判斷版本號(hào)是否一致
    NSLog(@"版本號(hào):%@----------%@", [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存儲(chǔ)到本地
        [self saveAppVersion:[self loadAppVersion]];
        return [JJNewGuideCollectionVC new];
    }
}
  • 新的版本的存儲(chǔ)

這里是在AppDelegate中進(jìn)行存儲(chǔ)

- (void)saveAppVersion:(NSString *)version 
{
    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
    [ud setObject:version forKey:@"appVersion"];
}
  • 程序版本和存儲(chǔ)版本的判斷邏輯
//獲取當(dāng)前版本號(hào)

- (NSString *)loadAppVersion 
{  
    //獲取info
    NSDictionary *info = [NSBundle mainBundle].infoDictionary;
    
    //返回當(dāng)前程序的版本號(hào)
    return info[@"CFBundleShortVersionString"];    
}

//獲取沙盒存儲(chǔ)的版本號(hào)

- (NSString *)loadSavedAppVersion 
{
    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
    return [ud objectForKey:@"appVersion"];
}

功能驗(yàn)證

這里就給大家驗(yàn)證了,以前親測(cè)可以的,大家感興趣的可以自己嘗試下。

后記

這個(gè)邏輯就一般的app進(jìn)行啟動(dòng)的邏輯處理,包括了版本驗(yàn)證和登錄頁跳轉(zhuǎn)等一系列的邏輯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容