`

(转)[IOS]根据不同情况启动不同页面

    博客分类:
  • IOS
阅读更多

转自:http://blog.csdn.net/zsk_zane/article/details/47110809

 

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;
}

 

分享到:
评论

相关推荐

    【一步一步学IOS5 】 在iOS App 中添加启动画面

    - 使用Asset Catalogs:这是从iOS 6开始引入的,可以方便地管理不同尺寸和分辨率的图标和启动图片。 - 如果你在iOS 5和iOS 6之间做兼容,可能需要在Info.plist中手动添加更多键值对来指定各个尺寸的启动图片。 四、...

    iOS_启动页

    2. **动态启动页**:如果你的应用有频繁更新的功能或者需要根据用户状态显示不同的启动页,可以考虑使用代码动态生成。这通常涉及到在应用程序的生命周期中,如`AppDelegate`的`application:...

    IOS应用源码之启动页面SplashDemo .zip

    在iOS应用开发中,启动页面(Splash Screen)通常被称为启动屏幕或欢迎屏幕,它是用户打开应用时首先看到的界面。这个"IOS应用源码之启动页面SplashDemo .zip"文件包含了一个示例项目,用于展示如何在iOS应用中实现...

    iOS-启动展示页面效果-23BWWalkthrough

    2. 动态内容:支持根据用户状态或应用数据动态更新启动页面的内容。 3. 全面兼容:兼容不同版本的iOS系统和多种设备,包括iPhone、iPad以及横竖屏模式。 4. 简化集成:提供简单易用的API,方便开发者快速集成到自己...

    ios-启动页.zip

    在iOS应用开发中,启动页(Splash Screen)是用户打开应用程序时首先看到的页面,它通常展示品牌标识、应用名称或者加载进度。本压缩包"ios-启动页.zip"提供的内容是关于如何实现启动页广告的示例项目,具体包含了一...

    ios-APP启动介绍页面(首次安装启动时).zip

    在iOS应用开发中,首次安装启动时的APP启动介绍页面是一种常见的用户体验设计,它通常用于向用户展示应用程序的核心功能或特色。本项目“ios-APP启动介绍页面(首次安装启动时)”提供了一种简单易用的方式来实现这...

    iOS 转盘效果,抽奖转盘

    在iOS开发中,创建引人入胜的交互体验是提升用户满意度的关键,而转盘效果或抽奖轮盘就是这样一种常见的动态元素。这类效果通常用于游戏、应用中的幸运抽奖或者选择菜单等场景,能够吸引用户的注意力并增加趣味性。...

    iOS获取系统启动图(小封装了一下)

    在iOS开发中,启动图(Launch Screen)是应用在启动时显示的页面,它能给用户带来良好的第一印象,同时也是应用程序加载过程中的视觉反馈。本文将深入探讨如何在iOS项目中获取并处理系统启动图,以及对其进行小封装...

    ios-app启动广告页面.zip

    首先,启动广告页面是在用户打开应用程序时,介于启动页面和主界面之间显示的一种营销策略。它通常用来推广产品、展示品牌或者提供特别优惠,以吸引用户的注意力。在描述中提到,这个广告页面可以在用户点击后消失,...

    iOS-程序导航演示以及启动图demo

    在iOS应用开发中,用户首次打开应用或者更新应用后,通常会看到一个引导界面,这被称为启动图(Launch Screen)或者启动画面。启动图的主要目的是为了提供一个良好的用户体验,使得应用在加载过程中有一个美观的过渡...

    ios-自定义启动页面(带动画).zip

    在iOS应用开发中,自定义启动页面是一种常见的需求,它能为用户提供更加个性化且吸引人的体验。本资源“ios-自定义启动页面(带动画).zip”提供了实现带有动画效果的自定义启动页的方法,通过LunchImageTest项目示例...

    iOS广告图页面

    在iOS应用开发中,"iOS广告图页面"通常是指一种特定的设计和编程实践,用于展示广告或作为应用程序的启动屏幕。这种页面对于提升品牌形象、吸引用户注意力以及提供良好的用户体验至关重要。下面将详细讨论与这个主题...

    ios-启动app时的广告页.zip

    在iOS应用开发中,"启动app时的广告页"是一个常见的设计策略,旨在吸引用户注意力,展示品牌信息或推广特定内容。这个广告页通常在应用程序启动时短暂显示,然后自动跳转到应用的主界面。在本文中,我们将深入探讨...

    iOS启动广告页的开发

    本文将深入探讨如何使用Objective-C和Xcode来开发iOS启动广告页。 首先,理解启动广告页的基本概念。启动广告页是在用户打开应用程序时短暂显示的页面,通常包含品牌形象、动画或简单的互动元素。它的目的是为了...

    IOS--引导页面

    在iOS应用开发中,引导页面(也称为启动教程或欢迎屏幕)通常是用户首次打开应用时看到的一系列展示应用核心功能和界面的静态或动态页面。这些页面有助于吸引用户的注意力,介绍应用的操作方式,并提升用户体验。在...

    ios-iOS 引导页 启动图.zip

    在iOS应用开发中,引导页(又称启动图)是用户首次打开应用时看到的一系列页面,通常用于介绍应用的主要功能、展示品牌形象或者提供用户指南。本资源“ios-iOS 引导页 启动图.zip”包含了一个实现引导页的示例代码,...

    IOS LaunchScreen设置启动图片与启动页停留时间详解

    问题二:iOS启动页面如何设置多停留一会 新建的iOS 项目启动画面默认为LaunchScreen.xib  如果想实现一张图片作为启动页,如下图 如果启动不行 记得clear 一下工程 是启动页停留一段时间 只需要在 ...

    ios端启动界面zip

    在`CustomStoryboard`这个文件中,我们可以预期找到一个专门为iOS启动界面定制的故事板文件。故事板(Storyboard)是Xcode中用于构建iOS应用界面的一种可视化工具,它可以将多个视图控制器和它们之间的导航关系清晰...

    仿ios的菊花转等待框

    总的来说,"仿ios的菊花转等待框"是一个提升Android应用用户体验的重要工具,通过合理的设计和实现,可以使其在不同场景下轻松复用。无论是通过继承`BaseActivity`还是使用独立的工具类,都能方便地在项目中集成并...

Global site tag (gtag.js) - Google Analytics