间隙的样本iAd代码使用主ViewController来显示全屏幕间质广告。
然而,我想能够触发广告从SKScene在我的iOS雪碧套件游戏。
我可以很容易地在主视图控制器(ViewController.m)中这样做:
[self requestInterstitialAdPresentation];但是,我尝试访问根视图控制器,它在以下viewDidLoad方法中设置场景:
SKView * skView = (SKView *)self.view;
SKScene * scene = [SKScene sceneWithSize:skView.bounds.size];
[skView presentScene:scene];在SKScene.m中,我尝试过这样的方法:
[self.view.window.rootViewController requestInterstitialAdPresentation];而X代码抛出的是:
No visible @interface for 'UIViewController' declares the selector 'requestInterstitialAdPresentation'这可能很简单,基本上我需要访问创建SKView和SKScene的SKView对象,以便向该对象发送requestInterstitialAdPresentation消息(并显示广告)。
发布于 2014-02-19 02:02:52
为什么不将实现requestInterstitialAdPresentation的视图控制器的实例传递给SKScene实例?这样,您可以直接引用VC,而不必通过窗口,这似乎很容易出错。
如果您打算接受这个建议--而不太了解您的代码库--我会冒险猜测,为场景创建一个委托接口并在视图控制器中实现它可能是有意义的。接口看起来类似于:
@protocol AdDelegate
- (BOOL)requestInterstitialAdPresentation;
@end就理解根视图控制器不实现requestInterstitialAdPresentation的原因而言,我认为最好的选择是调试应用程序并查看发生了什么。我怀疑您正在处理的是包装主VC的容器视图控制器,或者您正在呈现的场景出现在另一个窗口中。
发布于 2015-04-05 08:24:59
您可以使用简单的通知与您的viewController.In (您的viewController)通信:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(requestInterstitialAdPresentation) name:@"showAdd" object:nil];然后,在你的现场张贴通知,无论何时你想要你的广告呈现。在SKScene中:
[[NSNotificationCenter defaultCenter] postNotificationName:@"showAdd" object:nil];希望这能帮上忙
https://stackoverflow.com/questions/21868463
复制相似问题