zoukankan      html  css  js  c++  java
  • iOS 应用首次开启 出现引导页面

    关于引导页面 ,可以是独立的一个视图控制器控制的滚动视图。

    重点是处理 如何判断app是首次开启 而调用这个视图控制器得方法。

    逻辑如下:

    -(BOOL)isFirstLoad
    {
        if(!标记第一次开启得文件存在)//不存在
        {
            //创建这个标记文件;
            
            return YES;
        }
        else
        {
            return NO;
        }
    }

    实现写了一个类方法如下

    + (BOOL) isFirstLaunchForSwipeView {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        if (!documentsDirectory) {
            return NO;
        }
        NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"firstlaunch.plist"];
        // 文件目录存在检查
        if(![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
            NSError *error;
            BOOL result = [[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:&error];
            if (!result) {
                return NO;
            }
        }
        else {
            return NO;
        }
        return YES;
    }
    //////////////调用得时候我是这么操作的。
     if ([类方法名 isFirstLaunchForSwipeView] )
    {
    //创建引导图的方法 self.swipePageCtl
    =[[POPSwipePageController alloc] init]; [self.window addSubview:self.swipePageCtl.view]; }
    
    

    网上有好多,但是自己的就很好了。

    下边备注一个网上的方法和链接  备注:谷歌很强大

    http://iphonedevsdk.com/forum/iphone-sdk-development/102179-check-first-use.html

    在didFinishLaunchingWithOptions方法中加入如下代码:
    if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]){
            [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
            NSLog(@"第一次启动");
        }else{
            NSLog(@"已经不是第一次启动了");
        }
    
    现在的APP中流行在程序第一次启动时显示一些新手引导页面,下面的代码可用于判断此APP是否第一次启动,或升级后的第一次启动。
    
    
    #define LAST_RUN_VERSION_KEY        @"last_run_version_of_application"
    - (BOOL) isFirstLoad{
         NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary]
             objectForKey:@"CFBundleShortVersionString"];    
    
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    
        NSString *lastRunVersion = [defaults objectForKey:LAST_RUN_VERSION_KEY];
    
        if (!lastRunVersion) {
             [defaults setObject:currentVersion forKey:LAST_RUN_VERSION_KEY];
             return YES;
            // App is being run for first time
        }
        else if (![lastRunVersion isEqualToString:currentVersion]) {
            [defaults setObject:currentVersion forKey:LAST_RUN_VERSION_KEY];
            return YES;
            // App has been updated since last run
        }
        return NO;
    }
  • 相关阅读:
    【WPF】绘制柱状图、折线图、扇形图
    【WPF】获取容器宽高
    【SQL】SQL Server、MySQL、SQLite获取自增ID、自增ID清零
    【SQL Server操作】SQL Server重命名数据库及解决数据库无法分离的问题
    【数据迁移】MySQL数据库迁移到SQL Server
    【MySQL操作】MySQL导入导出数据库
    【MySQL操作】MySQL Workbench远程连接的一些操作
    【c#】遍历获得一个类的所有属性名
    vue 跨域 springCloud @CrossOrigin注解
    解决IDEA右侧maven不显示方法
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/3711261.html
Copyright © 2011-2022 走看看