美文网首页
ios 利用运行时来解决判断是否进入引导页

ios 利用运行时来解决判断是否进入引导页

作者: KS小么 | 来源:发表于2017-12-05 09:54 被阅读0次

        给AppDelegate添加一个分类自定义一个启动的方法- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ,实现load方法,在load方法里面拿到存储的系统版本与当前系统版本b比较。若版本比当前的低则进入引导页. 

 重要的方法粘贴如下:

@implementation AppDelegate (Guaid)

+ (void)load{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

NSString* lastVersion = [[NSUserDefaults standardUserDefaults] stringForKey:kLastVersionKey];

NSString* curtVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];

if ([curtVersion compare:lastVersion] == NSOrderedDescending) {

Method originMethod = class_getInstanceMethod(self.class, @selector(application:didFinishLaunchingWithOptions:));

Method customMethod = class_getInstanceMethod(self.class, @selector(guaid_application:didFinishLaunchingWithOptions:));

method_exchangeImplementations(originMethod, customMethod);

}

});

}

- (BOOL)guaid_application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.guaidWindow = [[UIWindow alloc] init];

self.guaidWindow.frame = self.guaidWindow.screen.bounds;

self.guaidWindow.backgroundColor = [UIColor clearColor];

self.guaidWindow.windowLevel = UIWindowLevelStatusBar + 1;

[self.guaidWindow makeKeyAndVisible];

KSGuaidViewController* vc = [[KSGuaidViewController alloc] init];

__weak typeof(self) weakSelf = self;

vc.shouldHidden = ^{

NSString* curtVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];

[[NSUserDefaults standardUserDefaults] setObject:curtVersion forKey:kLastVersionKey];

[[NSUserDefaults standardUserDefaults] synchronize];

[weakSelf.guaidWindow resignKeyWindow];

weakSelf.guaidWindow.hidden = YES;

weakSelf.guaidWindow = nil;

};

self.guaidWindow.rootViewController = vc;

return [self guaid_application:application didFinishLaunchingWithOptions:launchOptions];

}

相关文章

网友评论

      本文标题:ios 利用运行时来解决判断是否进入引导页

      本文链接:https://www.haomeiwen.com/subject/lvzhqttx.html