APP首次启动引导界面和启动界面设置——iOS开发
2015-07-28 20:30
1081 查看
APP下载安装第一次使用一般会显示一个首次启动引导界面然后进入主界面,非首次开启APP也通常会显示一个启动界面然后进入主界面。
1、本例首次启动显示FirstUseViewController,添加一个button,点击进入LaunchViewController
2、非首次LaunchViewController,显示2s后进入主界面ViewController
3、主界面ViewController
4、不深究细节,一般启动引导都会有动画,图片之类的,非本次练习重点,所以没有设置,只有简单地标志作界面区分
(效果图在文末)
FirstUseViewController.m
LaunchViewController.m
ViewController.m
AppDelegate.m设置,两种方法。个人觉得第二种利用NSUserDefaults实现更方便
界面效果图:
首次启动页面:
![](http://img.blog.csdn.net/20150728202335894)
非首次启动页面:
![](http://img.blog.csdn.net/20150728202435252)
主界面:
1、本例首次启动显示FirstUseViewController,添加一个button,点击进入LaunchViewController
2、非首次LaunchViewController,显示2s后进入主界面ViewController
3、主界面ViewController
4、不深究细节,一般启动引导都会有动画,图片之类的,非本次练习重点,所以没有设置,只有简单地标志作界面区分
(效果图在文末)
FirstUseViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor greenColor]; UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; button.center = self.view.center; [button setTitle:@"Welcome" forState:UIControlStateNormal]; [button addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } //点击button切换到下一个界面 - (void)btnAction:(UIButton *)btn { LaunchViewController *vc = [[LaunchViewController alloc] init]; self.view.window.rootViewController = vc; }
LaunchViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor blueColor]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 50)]; label.center = self.view.center; [label setFont:[UIFont systemFontOfSize:30]]; label.text = @"启动页面"; [self.view addSubview:label]; // 延迟2s调用,一般启动页面会停留,或者有些动画什么的,本例只简述思路,不深究细节 [self performSelector:@selector(changeView) withObject:self afterDelay:2]; // Do any additional setup after loading the view. } //切换到下一个界面 - (void)changeView { UIWindow *window = self.view.window; ViewController *main = [[ViewController alloc] init]; //添加一个缩放效果 main.view.transform = CGAffineTransformMakeScale(0.2, 0.2); [UIView animateWithDuration:0.1 animations:^{ main.view.transform = CGAffineTransformIdentity; }]; window.rootViewController = main; }
ViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor grayColor]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)]; label.center = self.view.center; [label setFont:[UIFont systemFontOfSize:30]]; label.text = @"主界面"; [self.view addSubview:label]; }
AppDelegate.m设置,两种方法。个人觉得第二种利用NSUserDefaults实现更方便
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; //// 利用文件操作判断是否为第一次使用此APP // NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/firstUse.plist"]; //第一次启动,没有此文件,会自动创建 // NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filePath]; // // BOOL notFirstUse = YES; // notFirstUse = [dic[@"notFirstUse"] boolValue]; // if (!notFirstUse) { // NSDictionary *dic = @{@"notFirstUse" : @YES }; // [dic writeToFile:filePath atomically:YES]; // FirstUseViewController *vc = [[FirstUseViewController alloc] init]; // self.window.rootViewController = vc; // }else { // LaunchViewController *vc = [[LaunchViewController alloc] init]; // self.window.rootViewController = vc; // } // // 利用NSUserDefaults实现 if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"]; NSLog(@"首次启动"); FirstUseViewController *vc = [[FirstUseViewController alloc] init]; self.window.rootViewController = vc; }else { NSLog(@"非首次启动"); LaunchViewController *vc = [[LaunchViewController alloc] init]; self.window.rootViewController = vc; } return YES; }
界面效果图:
首次启动页面:
非首次启动页面:
主界面:
相关文章推荐
- IOS被遗忘的知识
- Android ViewPager引导页(三)
- Object类、JAVA反射机制、Annotation功能
- iOS 苹果官方Demo合集
- android优化bmob聊天组件
- Android动画详解之第一话:帧动画(Frame动画)
- 如何有效的玩转微信
- 55.iOS6,7坐标起点不一样的原因 图片拉伸 initialize
- Android 镜像文件生成流程
- iOS设计模式 - 外观
- android 把文件传到/system/framework目录下
- 解决Android端升级安装后自动打开的问题
- Android用shareUserID实现多个Activity显示在同一界面
- AndroidManifest.xml
- [Android] ImageView.ScaleType设置图解
- 用HTML5来开发一款android本地化App游戏-宝石碰碰
- iOS 对于文件的解析 JSON DOM SAX
- native层获取Android设备电池电量
- Android官网中关于service 介绍的重要记录笔记
- iOS开发实现页面间的数据传递