在软件更新后,在用户第一次打开软件,可能你想给用户一点引导。比如上图。
实现步骤:
1.自定义引导界面
//
// PushGuideView.h
#import <UIKit/UIKit.h>
@interface PushGuideView : UIView
+ (instancetype)guideView;
+ (void)show;
@end
//
// PushGuideView.m
#import "PushGuideView.h"
@implementation PushGuideView
+ (void)show
{
NSString *key = @"CFBundleShortVersionString";
// 获取当前软件版本豪
NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
// 获取沙盒中存储的版本号
NSString *sanboxVersion = [[NSUserDefaults standardUserDefaults] stringForKey:key];
if (![currentVersion isEqualToString:sanboxVersion]) {
UIWindow *window = [UIApplication sharedApplication].keyWindow;
PushGuideView *guideView = [PushGuideView guideView];
guideView.frame = window.bounds;
[window addSubview:guideView];
// 存储版本号到沙盒
[[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:key];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
+ (instancetype)guideView
{
return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] firstObject];
}
/**
* 点击了『我知道啦』按钮
*/
- (IBAction)close:(UIButton *)sender
{
[self removeFromSuperview];
}
@end
2.程序首次启动的时候调用,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中。
// 引导视图
[PushGuideView show];
本案例代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 创建窗口
self.window = [[UIWindow alloc] init];
self.window.frame = [UIScreen mainScreen].bounds;
// 设置窗口的根控制器
self.window.rootViewController = [[TabBarController alloc] init];;
// 显示窗口
[self.window makeKeyAndVisible];
// 引导视图
[PushGuideView show];
return YES;
}