如何在某个SKScene上显示iAd并将其隐藏在另一个上

时间:2014-03-03 18:59:34

标签: ios sprite-kit iad

我正在制作一个简单的游戏,我想在Game Over Screen的顶部添加一个iAd。我可以将它添加到UIViewController,但是它会在播放时显示,这是我不想要的。

有没有办法让iAd仅出现在某个SKScene上?谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

最干净的解决方案是宣布并实施一项协议,让UIViewController知道它应该隐藏广告。

@protocol MySceneDelegate <NSObject>
- (void)hideAd;
- (void)showAd;
@end

@interface MyScene : SKScene
@property (weak) id <MySceneDelegate> delegate;
@end

显示场景的视图控制器应实现hideAd方法并将其自身设置为场景的委托。例如:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Configure the view, etc.
    ...

    // Set the delegate
    [scene setDelegate:self];

    // Present the scene.
    [skView presentScene:scene];
}

然后在场景中您不想展示广告,您可以调用设置为委托的视图控制器的hideAd方法:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
    /* Called when a touch begins */

    if ([_delegate respondsToSelector:@selector(hideAd)])
    {
        [_delegate performSelector:@selector(hideAd)];
    }
}

您可以告诉视图控制器以相同的方式显示广告。 希望它有所帮助。