iOS - 检测SKStoreProductViewController已打开

时间:2014-12-09 12:50:10

标签: ios app-store ads

在我的应用中,我使用了一些广告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];
             }
        }
     }

但是没找到它......

也许有人有更好的主意?

1 个答案:

答案 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];
       }
    }
 }
相关问题