在app中添加新手引导视图(XCode4.6)
原理是用NSUserDefaults 来判断是否是第一次启动,如果是第一次启动,则在当前页面添加启动画面。 首先是AppDelegate: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
NSLog(@"first launch");
}else {
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"];
NSLog(@"second launch");
} return YES; } 解释一下StoryBoard的配置,GuideVC是新手引导的ViewController,而ViewController是初始界面,即IntialViewController。第三个未设置控制器。 在GuideVC中,需要写入动画代码,通常是PageControl加几幅图,在此略过,只是加一个button,而且是直接用segue到初视图。 关键部分代码如下: ViewController.h: #import <UIKit/UIKit.h> @class GuideVC; @interface ViewController : UIViewController @property(strong,nonatomic) GuideVC *guideVC; @end ViewController.m: -(void)viewWillAppear:(BOOL)animated { if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) {
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"];
self.guideVC=[self.storyboard instantiateViewControllerWithIdentifier:@"guide"]; UIView *guideView=self.guideVC.view; CGRect switchViewFrame=guideView.frame; //得到frame switchViewFrame.origin.y=0; //将推入视图的y值设置为0,目的是防止出现视图加载下移的情况 guideView.frame=switchViewFrame; [self.view insertSubview:guideView aboveSubview:self.view]; } else {
} } 有了这个,引导视图应该就OK了。 |
在app中添加新手引导视图(XCode4.6)
最新推荐文章于 2019-03-13 18:35:29 发布