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

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

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

在UserGuideViewController.m 写

- (void)viewDidLoad

{

[superviewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColorredColor];

[selfinitGuide];//加载新用户指导页面

}

-(void)initGuide{

, , , )];

)];

[scrollView setPagingEnabled:YES];  //视图整页显示

, , , )];

[imageview setImage:[UIImage imageNamed:@"0.png"]];

[scrollView addSubview:imageview];

[imageview release];

, , , )];

[imageview1 setImage:[UIImage imageNamed:@"1.png"]];

[scrollView addSubview:imageview1];

[imageview1 release];

, , , )];

[imageview2 setImage:[UIImage imageNamed:@"2.png"]];

[scrollView addSubview:imageview2];

[imageview2 release];

, , , )];

[imageview3 setImage:[UIImage imageNamed:@"3.png"]];

imageview3.userInteractionEnabled = YES;    //打开imageview3的用户交互;否则下面的button无法响应

[scrollView addSubview:imageview3];

[imageview3 release];

UIButton *button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];//在imageview3上加载一个透明的button

[button setTitle:@"立即体验" forState:UIControlStateNormal];

[button , , , )];

[button addTarget:selfaction:@selector(firstpressed) forControlEvents:UIControlEventTouchUpInside];

[imageview3 addSubview:button];

[self.view addSubview:scrollView];

[scrollView release];

button.backgroundColor =[UIColorredColor];

}

//Button的方法  ViewController为 指导完之后 点击进入的主视图

- (void)firstpressed{

[selfpresentModalViewController:[[[ViewControlleralloc] init] autorelease] animated:YES];  //点击button跳转到根视图s

}

----------------------------------------------------------

AppDelegate.m 中的代码

#import "AppDelegate.h"

#import "ViewController.h"

@implementation AppDelegate

- (void)dealloc

{

[_window release];

//[_viewController release];

[super dealloc];

}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]] autorelease];

//判断是不是第一次启动

if (![[NSUserDefaultsstandardUserDefaults]boolForKey:@"firstLaunch"]) {

[[NSUserDefaultsstandardUserDefaults ]setBool:YESforKey:@"firstLaunch"];

NSLog(@"第一次启动");

//如果是第一次启动 使用UserGuideViewController

UserGuideViewController *userGUideViewController =[[UserGuideViewControlleralloc]init];

self.window.rootViewController =userGUideViewController;

[userGUideViewController release];

}

else{

NSLog(@"不是第一次启动");

//如果不是第一次启动使用应用的的主视图

ViewController *Vc = [[ViewControlleralloc] init];

self.window.rootViewController = Vc;

[Vc release];

}

self.window.backgroundColor = [UIColorwhiteColor];

[self.windowmakeKeyAndVisible];

return YES;

}


iOS-王云鹤 APP首次启动显示用户指导的更多相关文章

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

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

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

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

  3. ios王云鹤--iPhone中,点击换行,键盘消失。

    1.要在声明文件中实现 UItextFieldDelegate 协议 2.在实现文件中实现 UItextFieldDelegate 协议 中键盘消失的方法即: -(BOOL)textFieldShou ...

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

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

  5. 自定义App首次启动引导页

    代码如下 #import"ZBGuidePageView.h" @interfaceZBGuidePageView()<UIScrollViewDelegate> @p ...

  6. iOS app 程序启动原理

    iOS app 程序启动原理 Info.plist: 常见设置     建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...

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

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

  8. Appium 之处理首次启动手机App时的系统权限弹框

    一般首次启动一个手机App时都会有系统权限弹框,如下图所示: 权限弹窗上面的按钮都是固定的,只需要定位到“ALLOW”按钮,点击就可以了,代码如下: 这里主要用selenium里面的显示等待模块(We ...

  9. 怎样做一个iOS App的启动分层引导动画?

    一. 为什么要写这篇文章? 这是一个很古老的话题,从两年前新浪微博开始使用多层动画制作iOS App的启动引导页让人眼前一亮(当然,微博是不是历史第一个这个问题值得商榷)之后,各种类型的引导页层出不穷 ...

随机推荐

  1. ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则

    原文:ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则 对于Model验证,理想的设计应该是场景驱动的,而不是Model(类型)驱动的,也就是对于同一个Model对象, ...

  2. Junit指定测试运行顺序

    原文链接: Test execution order原始日期: 2012年12月06日本期: 2014年7月2日翻译人员: 铁锚 说明: Junit4.11版本号及以后才支持,建议升级到最新版本号. ...

  3. JDK-windows7环境变量配置-亲测版本 以及HelloWorld

    1.下载并安装jdk,假设安装1.6.0_45版本到C:\Program Files\Java,则安装完毕后,目录结构为: C:\PROGRAM FILES\JAVA├─jdk1.6.0_45│ ├─ ...

  4. Spring之SpringMVC的MethodNameResolver(源码)分析

    前言 在介绍SpringMVC  的Controller的具体实现中,我们讲到了MultiActionController.在获取处理请求对于的方法的时候我们用到了下面的代码,来自于MultiActi ...

  5. jquery的使用 关于 option ,append,attr,val()等的使用

    //遍历option和添加.移除option function changeShipMethod(shipping){ var len = $("select[@name=ISHIPTYPE ...

  6. 智能的API、云服务和SOA测试解决方案——Parasoft SOAtest

    依赖Parasoft测试解决方案的机构,不仅有小企业,政府机构,还有世界500强集团.Parasoft公司推出的Parasoft SOAtest,提供了API.云服务和SOA最全面的测试解决方案.此次 ...

  7. [原] 细说 NUMA

    详说 NUMA 标签(空格分隔): Cloud2.0 测试条件 两台机器: CPU: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz X 24 Intel(R) X ...

  8. Mike and Feet(CF 547B)

    Mike and Feet time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. StringTokenizer使用类

    StringTokenizer它被用来分离String应用类别.当量VB的split功能. 1.构造函数 public StringTokenizer(String str) public Strin ...

  10. css @media认识

    css2的@media css2里面尽管支持@media属性.可是能实现的功能比較少,一般仅仅用做打印的时候做特殊定义的CSS. 语法: @media sMedia { sRules } 说明: sM ...