在我的应用中,我使用了一些广告SDK' s。 在其中许多用户中,当用户点击广告下载应用时,SDK会使用SKStoreProductViewController来启用用户获取应用。商店页面以模态视图打开。
有没有办法检测SKStoreProductViewController是否已打开?
我尝试通过计算应用中特定时刻打开的viewcontroller的数量来实现:
[[[[[UIApplication sharedApplication] delegate] window] rootViewController] childViewControllers]
没有给我我想要的东西。
我也试过这个:
[self checkWithView:[[[UIApplication sharedApplication] delegate] window]];
-(void)checkWithView:(id)view
{
NSArray *views = [view subviews];
for (id view in views) {
if ([view isKindOfClass:[SKStoreProductViewController class]]){
NSLog(@"Bingo!");
}
else{
[self checkWithView:view];
}
}
}
但是没找到它......
也许有人有更好的主意?
答案 0 :(得分:1)
我找到了答案:
UIViewController *vc = [[[UIApplication sharedApplication] delegate] window].rootViewController.presentedViewController;
[self checkWithViewController:vc];
-(void)checkWithViewController:(UIViewController *)viewController
{
if(viewController){
if ([viewController isKindOfClass:[SKStoreProductViewController class]]){
NSLog(@"Bingo!");
}
else{
[self checkWithView:viewController.presentedViewController];
}
}
}