iOS开发之应用首次启动显示用户引导

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

我们只需要在一个类里面写好用户引导页面  基本上都是使用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 开发
绿色通道:好文要顶关注我收藏该文与我联系

疯狂的萝卜
关注 - 7
粉丝 - 14

+加关注

0
0
(请您对文章做出评价)

« 上一篇:NSString的常用方法
» 下一篇:iOS开发中判断空字符串的几种方法

posted @ 2012-09-16 13:20 疯狂的萝卜 阅读(3963) 评论(2) 编辑 收藏

iOS开发之应用首次启动显示用户引导 - 疯狂的萝卜 - 博客园相关推荐

  1. 推荐18个基于 HTML5 Canvas 开发的图表库 - 梦想天空(山边小溪) - 博客园

    推荐18个基于 HTML5 Canvas 开发的图表库 - 梦想天空(山边小溪) - 博客园 推荐18个基于 HTML5 Canvas 开发的图表库

  2. 解决AJAX CalendarExtender控件不显示中文的情况(转帖博客园某人(不好意思,实在是没有找到您的尊姓大名,感谢一下!))...

    在接触Ajax Control Toolkit之后,发现CalendarExtender的使用真的很方便,只要把控件拖入就能够使TextBox弹出日期选择. 不过大家都是否有跟我一样的问题,那就是.. ...

  3. Node.js+Koa开发微信公众号个人笔记(一)准备工作 - ZhangCui - 博客园

    本人也是在学习过程中,所以文章只作为学习笔记,如果能帮到你,那就更好啦~当然也难免会有错误,请不吝指出~ 一.准备工作 1.本人学习教程:慕课网Scott老师的<Node.js七天搞定微信公众号 ...

  4. android button 中文字位置设置,iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色...

    btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlS ...

  5. Microsoft .NET Compact Framework 开发常见问题解答 - 专注.NET技术及其相关应用开发! - 博客园...

    Microsoft .NET Compact Framework 开发常见问题解答 发布日期: 3/30/2005 | 更新日期: 3/30/2005 Microsoft .NET Compact F ...

  6. iOS_CNBlog项目开发 (基于博客园api开发) 上篇

    按照惯例, 先上效果图 前言 做这个项目是因为刚好在逛博客园的时候看到一篇文章 博客园第三方客户端-i博客园正式发布App Store, 这里就帮忙贴下链接吧. 整个项目做下来大概做了半个月, 今天算 ...

  7. PageRank 计算博客园用户排名

    PageRank 通过网页与网页之间的链接关系计算各网页权重,一般权重高的网页特点是:链接向它的网页数量多.链向它的网页其权重也较高.PageRank 就是通过这样的连接关系,一轮轮迭代计算后得出各网 ...

  8. 博客园客户端UAP开发随笔 -- 搭建App之间的桥梁

    开发Windows Phone应用的同学们应该都注意到了,Windows Phone 为了安全性,对应用的限制还是比较多的.我记得一位360的同学很无奈的说:WP太安全了,我们这些做WP上360卫士的 ...

  9. 博客园客户端UAP开发随笔 -- App UI设计的三大纪律八项注意

    前言 每一个页面都是这个App的门面,尤其是主页面,看上去干净整洁清爽宜人容易操作,那么你的App就成功了一半.这也反映出了你这个开发团队的基本审美素质和设计理念.如果你不是一个团队,而是一个个人开发 ...

最新文章

  1. 大数据揭秘:北京每天这些道路“最红”
  2. 神经网络设计与分析之sin函数拟合分析
  3. oracle11g中rman基本使用方法
  4. 从源码剖析SpringBoot中Tomcat的默认最大连接数
  5. big sur删除snapshot_法国Labarthe-Sur-Lèze公立中学 | LCR Architectes
  6. Android WebView https白屏、Http和Https混合问题、证书配置和使用
  7. discuz 不能上传头像提示can not write to the data/tmp folder
  8. ClickHouse留存、路径、漏斗、session实战
  9. 下载安装Redis+使用
  10. html中如何设置ttf,CSS怎么引用外部ttf字体?
  11. 40个PPT下载 | 分享珍藏很久的大数据PPT合集(附链接)
  12. Axure 网站后台-能源管理系统 rp 9原模板代码下载
  13. 剑指 Offer 58 - II. 左旋转字符串
  14. 计算任意多边形面积的Python实现
  15. Android ObjectAnimator类:手把手带你自定义属性动画
  16. 什么是Socket?websocket和socket区别?
  17. git 错误:GnuTLS recv error (-54): Error in the pull function
  18. 如何编写自己的头文件
  19. python软件下载-Python3.8下载
  20. Unity DrawCall优化

热门文章

  1. 小程序内配置公众号关注组件
  2. 【stm32】单片机学习——小车的开环控制
  3. JS算法笔记---移除元素
  4. 细致的网站开发流程是怎样的?
  5. android夜间切换失败,Android夜间模式切换记录
  6. Dfine2 for mac(图片降噪工具)
  7. 没想到,这款国产软件牛炸了。
  8. 计算机学院迎条幅,会计学院迎新标语条幅
  9. ppt python 图表_利用python分析weibo数据做成图表放入PPT中
  10. 零拷贝、如何实现零拷贝、大文件如何传输