标签:ios开发 界面启动 APP下载安装第一次使用一般会显示一个首次启动引导界面然后进入主界面,非首次开启APP也通常会显示一个启动界面然后进入主界面。 1、本例首次启动显示First
2016-05-13 09:59
816 查看
标签:ios开发 界面启动
APP下载安装第一次使用一般会显示一个首次启动引导界面然后进入主界面,非首次开启APP也通常会显示一个启动界面然后进入主界面。
1、本例首次启动显示FirstUseViewController,添加一个button,点击进入LaunchViewController
2、非首次LaunchViewController,显示2s后进入主界面ViewController
3、主界面ViewController
4、不深究细节,一般启动引导都会有动画,图片之类的,非本次练习重点,所以没有设置,只有简单地标志作界面区分
(效果图在文末)
FirstUseViewController.m
LaunchViewController.m
ViewController.m
AppDelegate.m设置,两种方法。个人觉得第二种利用NSUserDefaults实现更方便
APP下载安装第一次使用一般会显示一个首次启动引导界面然后进入主界面,非首次开启APP也通常会显示一个启动界面然后进入主界面。
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 调试问题记录(三)
- textVIew 在输入时 设置行数并且自适应高度 上移动
- iOS引导界面与主界面之间切换
- android studio 配置git,绕过曾经掉下去的坑
- 微信开发token验证失败
- 微信支付Notice: Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in
- 微信摇一摇周边--获取access_token
- Android HTML.fromHtml解析图片标签
- AS不能真机调试
- Android环境搭建
- iOS Provisioning Profile(Certificate)与Code Signing详解
- ios开发之ios中控件
- Android 使用模拟位置(支持Android 6.0)
- ios 获取手机设备信息
- Swift高阶函数:Map,Filter,Reduce等-Part 1
- android synchronized浅析
- RecyclerView 的 RecyclerView.Adapter 通用版的实现
- iOS 工程瘦身
- AndroidStudio2.0文档自动提示&代码提示补全
- iOS 9之3D Touch功能