zoukankan      html  css  js  c++  java
  • 关于iOS开发开心蛙家长iOS端开发过程中的零碎知识归纳(1)---关于进入App进入欢迎页面还是直接进入主页工具类的实现

    前言:作为一个iOS开发的菜鸟,半年来还没有完完整整的开发过项目,很高兴,这一次另一位比我厉害的iOS哥们忙于上一个项目的迭代工作,所以这次的项目,由我先来开始启动,不管这个项目将来会不会一直我接手,但是要认真的对待是必须的,所以有关项目的每一个功能和实际的应用,我希望能够记录下来,一来作为以后的参考,而来希望也能够将知识传递出去,也通过博客的形式来考察自己掌握的程度,是否能够自圆其说,那么话不多说,开始吧。。。。

    正文:

    每个APP下载完第一次使用或者更新后第一次进入,一般都会进入一个3~4页的欢迎页面,然后再进入到主界面,这个是开发中经常会使用到的功能,所以,这个功能对于开发APP来说还是很重要的,做为一个经常使用的功能,把这个功能给单独整合出来作为一个工具类是一个不错的考虑。

    //创建选择视图的工具类,命名如图。

    //
    //  QKControllerTool.h
    //  kaixinwaP
    //
    //  Created by wangyao on 15/11/24.
    //  Copyright © 2015年 wangyao. All rights reserved.
    //

    #import <Foundation/Foundation.h>

    @interface QKControllerTool : NSObject
    /**
     *选择根视图控制器
     */

    + (void)chooseRootViewController;
    @end

    以上是.h文件

    创建了一个选择视图的类方法

    //
    //  QKControllerTool.m
    //  kaixinwaP
    //
    //  Created by wangyao on 15/11/24.
    //  Copyright © 2015年 wangyao. All rights reserved.
    //

    #import "QKControllerTool.h"
    #import "QKTabBarController.h"
    #import "NewFeatureViewController.h"


    @implementation QKControllerTool
    +(void)chooseRootViewController
    {
    //    如何知道第一次使用这个版本?比较上次的使用状况
        NSString * versionKey = (__bridge NSString *)kCFBundleVersionKey;
        
    //    从沙盒中取出上次存储的软件版本号(取出用户上次的使用记录)
        NSUserDefaults * defaults =[NSUserDefaults standardUserDefaults];
        NSString * lastVersion = [defaults objectForKey:versionKey];
        
    //    获取当前打开软件的版本号
        
        NSString * currentVersion = [NSBundle mainBundle].infoDictionary[versionKey];
        
        UIWindow * window = [UIApplication sharedApplication].keyWindow;
        
        if ([currentVersion isEqualToString:lastVersion]) {
    //        如果当前版本号 == 上次使用的版本号:显示tabBarViewController
            [UIApplication sharedApplication].statusBarHidden = NO;
            window.rootViewController = [QKTabBarController new];
            NSLog(@"版本没变");
            
        }else {
    //        当前版本!=上次使用的版本:显示版本新特性
            window.rootViewController = [NewFeatureViewController new];
            [UIApplication sharedApplication].statusBarHidden = YES;
    //        存储这次使用的软件版本
            [defaults setObject:currentVersion forKey:versionKey];
            [defaults synchronize];
            NSLog(@"版本升级");
            
            
        }
        
        
    }

    @end

    总结:

    一.

       1. NSString * versionKey = (__bridge NSString *)kCFBundleVersionKey;
        2.NSUserDefaults * defaults =[NSUserDefaults standardUserDefaults];
       3. NSString * lastVersion = [defaults objectForKey:versionKey];

    //1.其实功能等同于NSString * versionKey = “kCFBundleVersionKey”;

    替代一下而已

    2,3是用取infoplist文件中的版本信息的意思;

    二.

    1.NSString * currentVersion = [NSBundle mainBundle].infoDictionary[versionKey];

    1.这里的[NSBundle mainBundle].infoDictionary[versionKey];

    是从当前安装的这个项目里面的info.plist文件中读取versionkey这个的值。

    三.

    [UIApplication sharedApplication].statusBarHidden = NO;

    //控制上面电池条那个的显示还是不现实,因为如果是欢迎页的画,一般是不需要显示的

    UIWindow * window = [UIApplication sharedApplication].keyWindow;
        
        if ([currentVersion isEqualToString:lastVersion]) {
    //        如果当前版本号 == 上次使用的版本号:显示tabBarViewController
            [UIApplication sharedApplication].statusBarHidden = NO;
            window.rootViewController = [QKTabBarController new];
            NSLog(@"版本没变");
            
        }else {
    //        当前版本!=上次使用的版本:显示版本新特性
            window.rootViewController = [NewFeatureViewController new];
            [UIApplication sharedApplication].statusBarHidden = YES;
    //        存储这次使用的软件版本
            [defaults setObject:currentVersion forKey:versionKey];
            [defaults synchronize];
            NSLog(@"版本升级");
            
            
        }
       

    //最后这个就是关键部分

    先把用于显示的主视窗取出来 :UIWindow * window = [UIApplication sharedApplication].keyWindow;

    然后再根据判断来设置主视窗的根视图,分别创建不同的viewController来实现控制显示功能。

    后记:这里主要写的工具类的内容,有关tabbar和NewFeature两个类的具体实现,详见下一个博客。

    一句话:珍惜一切就算没有拥有,别让欲望和贪婪使自己迷失。

  • 相关阅读:
    mysql8 JDBC连接注意事项
    Flask上下文管理源码分析
    python基础学习day5
    python基础学习day4
    python基础学习day3
    python基础学习day2
    python基础学习day1
    简单的名片管理系统
    pycharm教程
    Python:知识目录
  • 原文地址:https://www.cnblogs.com/YaoWang/p/5047727.html
Copyright © 2011-2022 走看看