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开发之应用首次启动显示用户引导的更多相关文章
- iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults
首先创建一个引导图的控制器类 UserGuideViewController.h和UserGuideViewController.m #import <UIKit/UIKit.h> #im ...
- iOS-王云鹤 APP首次启动显示用户指导
这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面 基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...
- iOS开发UI篇—程序启动原理和UIApplication
iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...
- iOS开发UI篇—程序启动原理和UIApplication1
iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...
- SharedPreference 存储小量数据,一般首次启动显示引导界面就用这个。
写://添加一个SharedPreference并传入数据SharedPreference sharedPreferences = getSharedPreferences("share_d ...
- iOS开发-UIApplication和App启动状态
UIApplication简单从字面上了解就是应用程序,开发的时候有的时候会根据需要调用其中的方法,看起来不起眼,实际在iOS开发UIApplication提供了iOS程序运行期间的控制和协作工作.每 ...
- iOS开发(1) WebView和HTML 显示
iOS 7 已经release了.现在学习iOS开发还是非常热门的.到处也有些团队在寻找iOS开发的人才. 那么,iOS开发.....省略了1万字.... HTML5 +CSS3+JS...再省略1万 ...
- 【转】iOS开发UI篇—程序启动原理和UIApplication
原文 http://www.cnblogs.com/wendingding/p/3766347.html 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程 ...
- [转载自 文顶顶]iOS开发UI篇—程序启动原理和UIApplication
一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplica ...
随机推荐
- php$get中文汉字参数乱码
最近写了个简单的页面,从浏览器中传入中文参数(test.php?name=测试),不论怎么设置utf-8的页面中都显示乱码,google了一把也查到了不少解决办法,但是问题的原因到底是什么呢?没有人深 ...
- 为什么说 C/C++ 不适合做 Web 开发?(成本高,容易出错,apache等工具分担了大部分工作)
因为大家在讨论用C#.Java,做出来的项目的时候,用C++的人们还在讨论语言特性 每种语言都有特定适用范围,对应着某类问题.web开发的重头戏不是计算,而是与用户交互和发送sql语句,当然以脚本语言 ...
- php实现求二进制中1的个数(右移、&、int32位)(n = n & (n - 1);)
php实现求二进制中1的个数(右移.&.int32位)(n = n & (n - 1);) 一.总结 1.PHP中的位运算符和java和c++一样 2.位移运算符看箭头方向,箭头向左就 ...
- js进阶正则表达式6转义字符(加\转义)(.符号)(|符号)
js进阶正则表达式6转义字符(加\转义)(.符号)(|符号) 一.总结 转义字符:{} () / $ # & * . ....... //3.特殊字符,都要加转义\ 点符号:var reg2= ...
- .gitignore 设置忽略上传的文件
首先在一个项目中新建如下所示文件用来测试 image.png 一.生成.gitignore文件 1.进入项目根目录,打开终端: 2.输入 vi .gitignore 创建并打开隐藏文件.gitigno ...
- L脚本语言实现文件加解密
L脚本语言中能够对内存对象进行AES加解密.我们能够非常easy地实现文件加解密 #scp #定义一个秘钥字符串 定义:字符串,str1,abcdefg 打开:文件,file1,c:\1.txt 打开 ...
- 进入Erlang的世界
http://erlang.group.iteye.com/group/wiki/1407-to-enter-the-world-of-erlang 进入Erlang的世界 作为程序员,我们曾经闻听很 ...
- 配置ANDROID_HOME
原文:配置ANDROID_HOME 1.在环境变量中设置一个名为ANDROID_HOME,变量值为SDK路径 2.添加至Path中 备注:ANDROID_HOME的变量值仅允许一个
- 【转】eth0 no such device(reload)
[转自:http://blog.chinaunix.net/uid-25554408-id-292638.html 北国的春的ChinaUnix博客] 今天我在vmware里安装了虚拟机,安装虚拟机就 ...
- javaS的tring和androidS的tring区别是什么?
这是今天阿里电话面试被问到的,在之前确实没有想过(一直以为是一样的),于是面试完之后,我立即打开了源代码,对这两个String类进行了比較,以下是我的发现. 首先我观察了这两个String类所导入的包 ...