您的位置:首页 > 移动开发 > IOS开发

iOS开发之首次启动引导页的两种处理方法简析

2016-02-29 11:24 387 查看
大多数iOS软件首次启动时都会有引导页,在开发过程中发现两种实现方式。

第一种,一个根视图,上面加一层蒙板,蒙板可以自定义类

第二种,网上常见解决方案,设置两个根视图,引导控制器结束后跳回主视图控制器

代码如下:

AppDelegate.m文件

#import "AppDelegate.h"

#import "ViewController.h"

#import "GuideViewController.h"

@interface
AppDelegate (){

    UIView *topView;//第一种引导方式,引导页蒙板,自定义View类

}

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    

    self.window = [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];

    self.window.backgroundColor = [UIColorblueColor];

    [self.windowmakeKeyAndVisible];

    

    /**

     *  第一种引导方式创建根视图和新的View,判断是否首次启动,引导结束移除新的View(简单粗暴)

     */

    ViewController *viewController = [[ViewControlleralloc]init];

    [self.windowsetRootViewController:viewController];

    if (![[NSUserDefaultsstandardUserDefaults]
boolForKey:@"firstStart"]) {

        [[NSUserDefaultsstandardUserDefaults]
setBool:YESforKey:@"firstStart"];

        topView = [[UIViewalloc]initWithFrame:[UIScreenmainScreen].bounds];

        topView.backgroundColor = [UIColoryellowColor];

        UITapGestureRecognizer *click = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(RemovetopView:)];

        [topViewaddGestureRecognizer:click];

        topView.userInteractionEnabled =YES;

        [viewController.view
addSubview:topView];

    }

    

    /**

     *  第二种引导方式判断是否首次启动,创建Controller并引导结束后跳转另一个Controller种引导方式创建根视图和新的View,判断是否首次启动,引导结束移除新的View(简单粗暴)

     */

    if (![[NSUserDefaultsstandardUserDefaults]
boolForKey:@"firstStart"]) {

        [[NSUserDefaultsstandardUserDefaults]
setBool:YESforKey:@"firstStart"];

        GuideViewController *guideViewController = [[GuideViewControlleralloc]init];

        self.window.rootViewController = guideViewController;

    }else{

        ViewController *viewController = [[ViewControlleralloc]init];

        [self.windowsetRootViewController:viewController];

    }

    

    return
YES;

}

/**

 *  第一种引导方式移除新的View方法

 */

-(IBAction)RemovetopView:(id)sender{

    [UIViewanimateWithDuration:0.5animations:^{

        [topViewremoveFromSuperview];

    }];

}

引导视图控制器代码:

#import "GuideViewController.h"

#import "ViewController.h"

@interface
GuideViewController ()

@end

@implementation GuideViewController

- (void)viewDidLoad {

    [superviewDidLoad];

    self.view.backgroundColor = [UIColorpurpleColor];

    UITapGestureRecognizer *click = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(NextView:)];

    [self.viewaddGestureRecognizer:click];

}

/**

 *  第二种引导方法跳转主视图方法

 */

-(IBAction)NextView:(id)sender{

    ViewController *newViewController = [[ViewControlleralloc]init];

    [selfpresentViewController:newViewController
animated:YEScompletion:nil];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  引导功能