这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单

我们只需要在一个类里面写好用户引导页面  基本上都是使用UIScrollView 来实现,

新建一个继承于UIViewController的类 命名为 UserGuideViewController ,

在UserGuideViewController.m 写

1 - (void)viewDidLoad
 2 {
 3     [super viewDidLoad];
 4     // Do any additional setup after loading the view.
 5     self.view.backgroundColor = [UIColor redColor];
 6    
 7     [self initGuide];   //加载新用户指导页面
 8 }
 9
10 - (void)initGuide
11 {
12     UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 640)];
13     [scrollView setContentSize:CGSizeMake(1280, 0)];
14     [scrollView setPagingEnabled:YES];  //视图整页显示
15     //    [scrollView setBounces:NO]; //避免弹跳效果,避免把根视图露出来
16    
17     UIImageView *imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
18     [imageview setImage:[UIImage imageNamed:@"0.png"]];
19     [scrollView addSubview:imageview];
20     [imageview release];
21    
22     UIImageView *imageview1 = [[UIImageView alloc] initWithFrame:CGRectMake(320, 0, 320, 460)];
23     [imageview1 setImage:[UIImage imageNamed:@"1.png"]];
24     [scrollView addSubview:imageview1];
25     [imageview1 release];
26    
27     UIImageView *imageview2 = [[UIImageView alloc] initWithFrame:CGRectMake(640, 0, 320, 460)];
28     [imageview2 setImage:[UIImage imageNamed:@"2.png"]];
29     [scrollView addSubview:imageview2];
30     [imageview2 release];
31    
32     UIImageView *imageview3 = [[UIImageView alloc] initWithFrame:CGRectMake(960, 0, 320, 460)];
33     [imageview3 setImage:[UIImage imageNamed:@"3.png"]];
34     imageview3.userInteractionEnabled = YES;    //打开imageview3的用户交互;否则下面的button无法响应
35     [scrollView addSubview:imageview3];
36     [imageview3 release];
37    
38     UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//在imageview3上加载一个透明的button
39     [button setTitle:nil forState:UIControlStateNormal];
40     [button setFrame:CGRectMake(46, 371, 230, 37)];
41     [button addTarget:self action:@selector(firstpressed) forControlEvents:UIControlEventTouchUpInside];
42     [imageview3 addSubview:button];
43    
44     [self.view addSubview:scrollView];
45     [scrollView release];
46 }
button的方法

1 - (void)firstpressed
2 {
3     [self presentModalViewController:[[[WeiBoViewController alloc] init] autorelease] animated:YES];  //点击button跳转到根视图
4 }

至于添加button是因为我的用户引导最后一个页面有一个画上去的button,写着 开始使用  我在上面添加一个透明的button 用以实现调用方法

打开AppDelegate.m

首先引入头文件

1 #import "UserGuideViewController.h"
2 #import "WeiBoViewController.h"
WeiBoViewController是我的根视图application: didFinishLaunchingWithOptions: 方法内进行判断

1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 2 {
 3     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
 4     // Override point for customization after application launch.
 5    
 6     //判断是不是第一次启动应用
 7     if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"])
 8     {
 9         [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
10         NSLog(@"第一次启动");       
11         //如果是第一次启动的话,使用UserGuideViewController (用户引导页面) 作为根视图
12         UserGuideViewController *userGuideViewController = [[UserGuideViewController alloc] init];
13         self.window.rootViewController = userGuideViewController;
14         [userGuideViewController release];
15     }
16     else
17     {
18         NSLog(@"不是第一次启动");
19         //如果不是第一次启动的话,使用LoginViewController作为根视图
20         WeiBoViewController *weiBoViewController = [[WeiBoViewController alloc] init];
21         self.window.rootViewController = weiBoViewController;
22         [weiBoViewController release];
23
24     }
25    
26     self.window.backgroundColor = [UIColor whiteColor];
27     [self.window makeKeyAndVisible];
28     return YES;
29 }

iOS开发之应用首次启动显示用户引导的更多相关文章

  1. iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults

    首先创建一个引导图的控制器类 UserGuideViewController.h和UserGuideViewController.m #import <UIKit/UIKit.h> #im ...

  2. iOS-王云鹤 APP首次启动显示用户指导

    这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面  基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...

  3. iOS开发UI篇—程序启动原理和UIApplication

    iOS开发UI篇—程序启动原理和UIApplication   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...

  4. iOS开发UI篇—程序启动原理和UIApplication1

    iOS开发UI篇—程序启动原理和UIApplication   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...

  5. SharedPreference 存储小量数据,一般首次启动显示引导界面就用这个。

    写://添加一个SharedPreference并传入数据SharedPreference sharedPreferences = getSharedPreferences("share_d ...

  6. iOS开发-UIApplication和App启动状态

    UIApplication简单从字面上了解就是应用程序,开发的时候有的时候会根据需要调用其中的方法,看起来不起眼,实际在iOS开发UIApplication提供了iOS程序运行期间的控制和协作工作.每 ...

  7. iOS开发(1) WebView和HTML 显示

    iOS 7 已经release了.现在学习iOS开发还是非常热门的.到处也有些团队在寻找iOS开发的人才. 那么,iOS开发.....省略了1万字.... HTML5 +CSS3+JS...再省略1万 ...

  8. 【转】iOS开发UI篇—程序启动原理和UIApplication

    原文 http://www.cnblogs.com/wendingding/p/3766347.html   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程 ...

  9. [转载自 文顶顶]iOS开发UI篇—程序启动原理和UIApplication

    一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplica ...

随机推荐

  1. php 字符串 去掉 html标签

    echo strip_tags("Hello <b>world!</b>");

  2. How to use ftp in a shell script

    转载How to use ftp in a shell script How to use ftp in a shell script Bruce EdigerBruce Ediger's home ...

  3. 二:新浪微博:第三方框架管理工具CocoaPods的安装和使用

    一:CocoaPods的安装 我们可以用淘宝的Ruby镜像来访问cocoapods.按照下面的顺序在终端中敲入依次敲入 $ gem sources --remove https://rubygems. ...

  4. Android JNI--基础篇(二)

    编写一个可以与C代码交互的android工程需要如下步骤: 1.JAVA代码中写声明native 方法 2. 创建jni目录,编写c代码,方法名字要对应 3.编写Android.mk文件(交叉编译的规 ...

  5. ios UI控件的简单整理

    把该文件拷贝到.m文件中就能够方便的查找 /** 匿名类目:能够声明方法和变量,属性为private(不同意在外部调用,且不能被继承 */ /** 发送数据的托付方,接收数据的时代理发(即代理的反向传 ...

  6. Redis内存管理的基石zmallc.c源代码解读(一)

    当我第一次阅读了这个文件的源代码的时候.我笑了,忽然想起前几周阿里电话二面的时候,问到了自己定义内存管理函数并处理8字节对齐问题. 当时无言以对,在面试官无数次的提示下才答了出来,结果显而易见,挂掉了 ...

  7. js如何实现点击显示和隐藏表格

    js如何实现点击显示和隐藏表格 一.总结 一句话总结: 1.给table或者table里面的元素添加点击事件, 2.然后判断当前表格的数据显示或者隐藏, 3.然后通过display属性显示(非none ...

  8. 数据预处理(normalize、scale)

    matlab 工具函数(三)-- normalize(归一化数据) 注:待处理的数据 X∈Rd×N,N 表示样本的个数,d 则是单个样本的维度: 1. 去均值(remove DC) X = bsxfu ...

  9. svn删除文件或文件夹后提交失败及解决

    svn删除文件夹后提交显示Item 'XXXX' is out of date 有这么几种可能, 1.别人已经提交代码.恰好这个文件或文件夹有改动,这样的情况须要先回复再更新再删除再提交. 2.没有人 ...

  10. Expression Blend 的点滴(4)--创建类似iPhone屏幕锁控件(上)

    原文:Expression Blend 的点滴(4)--创建类似iPhone屏幕锁控件(上) 本篇文章,最终效果图:  当然,不只是一个UI而已,如果只是一张图片,那专业的设计师能做出更出色的效果.在 ...