思路篇:
1.图形搭建:自定义View + Xib
2.实现逻辑:
1、将视图加入根视图控制器
2、如何决定显示与否(只在程序当前版本第一次打开的时候显示):取到当前版本号,与沙盒中的版本号比较,不同则显示,相同则不显示
3、点击事件如何实现:放一个跟“我知道了”大小一样的透明按钮,点击按钮,删除视图
代码篇(仅核心代码展示):
1.自定义View
FLPushGuideView.m
// 加载Xib
+ (instancetype)guideView{
return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil]lastObject];
}
// 删除视图
- (IBAction)close {
[self removeFromSuperview];
}
2.根视图控制器
FLTabBarController.m
/**
* 比较版本号,决定推送引导显示与否
*/
- (void)viewDidLoad {
[super viewDidLoad];
// 显示推送指南
NSString *key = @"CFBundleShortVersionString";
// 当前版本号
NSString *currentVerson = [NSBundle mainBundle].infoDictionary[key];
// 沙盒中的版本号
NSString *sanboxVerson = [[NSUserDefaults standardUserDefaults]stringForKey:key];
if (![currentVerson isEqualToString:sanboxVerson]) {//第一次打开
FLPushGuideView *guideView = [FLPushGuideView guideView];
guideView.frame = self.view.bounds;
[self.view addSubview:guideView];
[[NSUserDefaults standardUserDefaults] setObject:currentVerson forKey:key];
// 立刻同步存储(不写这句不知道什么时候存储)
[[NSUserDefaults standardUserDefaults] synchronize];
}
}