首页 > 移动平台 > 详细

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

时间:2015-12-15 13:59:01      阅读:400      评论:0      收藏:0      [点我收藏+]

前言:作为一个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两个类的具体实现,详见下一个博客。

 

 

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

 

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

原文:http://www.cnblogs.com/YaoWang/p/5047727.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!