美文网首页
设置引导页

设置引导页

作者: 心底碎片 | 来源:发表于2016-08-25 10:38 被阅读74次

1.新建一个WelcomeViewController
,代码如下

#import "WelcomeViewController.h"
#import "RootTabBar.h"
#import "LoginView.h"

@interface WelcomeViewController ()<UIScrollViewDelegate>
{
    // 创建页码控制器
    UIPageControl * pageControl;
    // 判断是否是第一次进入应用
    BOOL flag;
    NSString * MyTokenID;
    NSString * MyUserID;
}
@end

@implementation WelcomeViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self MakeUI];
}
- (void)MakeUI{
    UIScrollView * myScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
    for (int i = 0; i < 3; i++) {
        UIImage * image = [UIImage imageNamed:[NSString stringWithFormat:@"welcome%d",i+1]];
        UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH*i, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
        //最后一页创建按钮
        if (i == 2) {
            imageView.userInteractionEnabled = YES;
            UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
            button.frame = CGRectMake(SCREEN_WIDTH/3, SCREEN_HEIGHT*7/8-20, SCREEN_WIDTH/3, 40);
            [button setTitle:@"立即体验" forState:UIControlStateNormal];
            [button setTitleColor:XHRGBA(91, 178, 187, 1) forState:UIControlStateNormal];
            button.layer.borderColor = XHRGBA(91, 178, 187, 1).CGColor;
            button.layer.borderWidth = 1;
            button.layer.cornerRadius = SLLCornerRadius;
            button.layer.masksToBounds = YES;
            [button addTarget:self action:@selector(Go:) forControlEvents:UIControlEventTouchUpInside];
            [imageView addSubview:button];
        }
        imageView.image = image;
        [myScrollView addSubview:imageView];
    }
    myScrollView.bounces = NO;
    myScrollView.pagingEnabled = YES;
    myScrollView.showsHorizontalScrollIndicator = NO;
    myScrollView.contentSize = CGSizeMake(SCREEN_WIDTH*3, SCREEN_HEIGHT);
    myScrollView.delegate = self;
    [self.view addSubview:myScrollView];
    
    pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(SCREEN_WIDTH/3, SCREEN_HEIGHT*15/16-10, SCREEN_WIDTH/3, SCREEN_HEIGHT/16)];
    pageControl.numberOfPages = 3;
    pageControl.pageIndicatorTintColor = XHRGBA(206, 206, 206, 1);
    pageControl.currentPageIndicatorTintColor = XHRGBA(91, 178, 187, 1);
    [self.view addSubview:pageControl];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    pageControl.currentPage = (NSInteger)(scrollView.contentOffset.x/SCREEN_WIDTH);
}
- (void)Go:(UIButton *)sender{
    flag = YES;
    NSUserDefaults * userDef = [NSUserDefaults standardUserDefaults];
    //保存用户数据
    [userDef setBool:flag forKey:@"notFirst"];
    [userDef synchronize];
    //切换根视图控制器
    [self GoToHomeView];
}
- (void) GoToHomeView
{
    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
    MyTokenID = [ user objectForKey:@"UserToken"];
    MyUserID = [user objectForKey:@"UserID"];
    
    if (MyTokenID.length == 0) {
        LoginView *login = [[LoginView alloc] init];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:login];
        self.view.window.rootViewController = nav;
    }
    else
    {
        RootTabBar *tabs = [[RootTabBar alloc] init];
        self.view.window.rootViewController = tabs;
    }
}

2,在AppDelegate.m文件中添加

if (![user boolForKey:@"notFirst"]) {
        //第一次--进入启动页
        self.window.rootViewController = [[WelcomeViewController alloc] init];
    }else{
        if (MyTokenID.length == 0) {
            LoginView *login = [[LoginView alloc] init];
            UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:login];
            self.window.rootViewController = nav;
        }
        else
        {
            RootTabBar *tabs = [[RootTabBar alloc] init];
            self.window.rootViewController = tabs;
        }
    }

注意,对应的key值(notFirst),一定不能不一样。
还要注意,NSUserDefaults赋值之后要[userDef synchronize];

相关文章

  • 设置引导页

    1.新建一个WelcomeViewController,代码如下 2,在AppDelegate.m文件中添加 注意...

  • uni-app设置引导页源码

    是引导页(guide) 不是 启动界面 (splash)详细设置步骤见:uniapp设置引导页 https://w...

  • APP启动次数判断

    APP的启动次数判断,用来设置引导图欢迎页登录等设置

  • App页面分类

    引导页(欢迎页) 过渡页(启动页) 加载页 沉浸式页面 功能页,eg: 登陆、注册,设置,发布… 列表页 正文页,...

  • Android开发-引导页图片滑动效果

    Android开发-引导页图片滑动效果 需求: 打开app引导页图片产生滑动动画效果,根据需要将图片设置渐变、滑动...

  • swift有一句代码搞定APP引导页(图片/GIF/视频)

    APP启动引导页(图片/gif/视频) 在APP启动时候设置引导页,不管图片,gif,还是视频只需要一个方法 视频...

  • iPad开发之引导页设置

    在iPad开发时,引导页是不允许屏幕旋转的,原因在于当屏幕旋转时,引导页图片会发生偏移,前提是引导页是写活的情况,...

  • uni-app 设置引导页

    首先在 pages.json 里配置,引导页放在第一显示页并禁用原生导航栏 设置 intro.vue 页面样式,...

  • iOS_LoadingController

    App 启动的引导页制作,如下步骤 设置 ViewController 的 View 为 ImageView; 添...

  • 关于iOS设置引导页优化问题

    现在,总结一下设置iOS app引导页,所误入的坑 之前呢,所提交的版本没有怎么关注过引导页的优化问题,自认为让设...

网友评论

      本文标题:设置引导页

      本文链接:https://www.haomeiwen.com/subject/bnaosttx.html