新手引导页在app开发中使会用到,分享给没做过的童鞋,如果你有更好的思路,欢迎交流哈,其实实现方式有很多种,下面分享一下2种方法:
方式一:这个方法比较简单:
1、首先建一个引导页的控制器 TeachViewController,里面是存放引导的资源,业务逻辑之类的。
2、在这个类里面设置一个代理(主要是在AppDelegate 里要使用到):
@property (retain,nonatomic)AppDelegate *delegte;
3、添加一个滚动视图,当然,看你的需求了:(我这里是在viewDidLoad 添加)
UIScrollView *scrollerView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scrollerView.contentSize = CGSizeMake(320*4, 480);
//分页滑动
scrollerView.pagingEnabled = YES;
[self.view addSubview:scrollerView];
for (int i = 0; i<4; i++) {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i*320, 0, 320, 480)];
imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"first_guide%d.jpg",i+1]];
[scrollerView addSubview:imageView];
}
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(320*3, 420, 320, 40);
[button setTitle:@"开始体验" forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[button addTarget:self action:@selector(clickAction) forControlEvents:UIControlEventTouchUpInside];
[scrollerView addSubview:button];
3、1 在点击的方法里实现代理啦:
- (void)clickAction
{
NSLog(@"代理");
[_delegte setRootViewControll];
}
4、最后,到 AppDelegate 类里面实现即可:(主要是使用一个NSUserDefaults 用来记录一下,登录的次数,这里是只登录一次)。
在方法:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;实现;
NSUserDefaults *udf = [NSUserDefaults standardUserDefaults];
NSString *OC = [udf objectForKey:@"opentCount"];
int openCount = [OC intValue];
a、接着使用判断上面的count 的次数是否为0,否则,不设置为根视图控制器:
if (openCount == 0) {
TeachViewController *tecVC = [[TeachViewController alloc] init];
tecVC.delegte = self;
self.window.rootViewController = tecVC;
}else {
[self setRootViewControll];
}
openCount ++;
[udf setObject:[NSString stringWithFormat:@"%d",openCount] forKey:@"opentCount"];
[udf synchronize];
b、调用上面的定义的方法:setRootViewControll
- (void)setRootViewControll{
UIViewController *VC = [[UIViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:VC];
VC.view.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = nav;
}
基本上一个简单的引导页面就可以实现了。
方式二:思路大同小异:都是判断哪个控制器是否是rootCT的:代码就贴少点了!
***其实你也可以理解为,判断本地版本和上次记录的版本是否一致!***
a.
和上面的思路一样。首先你要声明一个控制器,里面实现你要的功能就OK了。
b.同样使用一个 NSUserDefaults 记录版本号:
c. 其中 IWTabBarViewController 就是我们封装好的 TabBar啦,里面都是套路来的。