我正在制作一个简单的游戏,我想在Game Over Screen的顶部添加一个iAd
。我可以将它添加到UIViewController
,但是它会在播放时显示,这是我不想要的。
有没有办法让iAd
仅出现在某个SKScene
上?谢谢你的帮助!
答案 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)];
}
}
您可以告诉视图控制器以相同的方式显示广告。 希望它有所帮助。