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

在app中添加新手引导视图

2014-09-04 17:42 162 查看

转载: http://yul100887.blog.163.com/blog/static/20033613520147274371897/?latestBlog

在app中添加新手引导视图
原理是用NSUserDefaults来判断是否是第一次启动,如果是第一次启动,则在当前页面添加启动画面。
首先是AppDelegate:

- (BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions

{

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

[[NSUserDefaultsstandardUserDefaults]
setBool:YES
forKey:@"everLaunched"];

[[NSUserDefaultsstandardUserDefaults]
setBool:YES
forKey:@"firstLaunch"];

NSLog(@"first launch");

}else
{

[[NSUserDefaultsstandardUserDefaults]
setBool:NO
forKey:@"firstLaunch"];

NSLog(@"second launch");

}

return
YES;

}





解释一下StoryBoard的配置,GuideVC是新手引导的ViewController,而ViewController是初始界面,即IntialViewController。第三个未设置控制器。
在GuideVC中,需要写入动画代码,通常是PageControl加几幅图,在此略过,只是加一个button,而且是直接用segue到初视图。
关键部分代码如下:
ViewController.h:

#import

@class
GuideVC;

@interfaceViewController :UIViewController

@property(strong,nonatomic)
GuideVC
*guideVC;

@end

ViewController.m:

-(void)viewWillAppear:(BOOL)animated

{

if
([[NSUserDefaultsstandardUserDefaults]
boolForKey:@"firstLaunch"]){

[[NSUserDefaultsstandardUserDefaults]
setBool:NO
forKey:@"firstLaunch"];

self.guideVC=[self.storyboardinstantiateViewControllerWithIdentifier:@"guide"];

UIView *guideView=self.guideVC.view;

CGRect switchViewFrame=guideView.frame;//得到frame

switchViewFrame.origin.y=0;
//将推入视图的y值设置为0,目的是防止出现视图加载下移的情况

guideView.frame=switchViewFrame;

[self.view
insertSubview:guideViewaboveSubview:self.view];

}

else

{

}

}

有了这个,引导视图应该就OK了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: