首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKScene中的间隙SKScene在iOS雪碧盒中的应用

SKScene中的间隙SKScene在iOS雪碧盒中的应用
EN

Stack Overflow用户
提问于 2014-02-19 00:23:39
回答 2查看 1.4K关注 0票数 0

间隙的样本iAd代码使用主ViewController来显示全屏幕间质广告。

然而,我想能够触发广告从SKScene在我的iOS雪碧套件游戏。

我可以很容易地在主视图控制器(ViewController.m)中这样做:

代码语言:javascript
复制
[self requestInterstitialAdPresentation];

但是,我尝试访问根视图控制器,它在以下viewDidLoad方法中设置场景:

代码语言:javascript
复制
SKView * skView = (SKView *)self.view;
SKScene * scene = [SKScene sceneWithSize:skView.bounds.size];
[skView presentScene:scene];

SKScene.m中,我尝试过这样的方法:

代码语言:javascript
复制
[self.view.window.rootViewController requestInterstitialAdPresentation];

而X代码抛出的是:

代码语言:javascript
复制
No visible @interface for 'UIViewController' declares the selector 'requestInterstitialAdPresentation'

这可能很简单,基本上我需要访问创建SKView和SKScene的SKView对象,以便向该对象发送requestInterstitialAdPresentation消息(并显示广告)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-19 02:02:52

为什么不将实现requestInterstitialAdPresentation的视图控制器的实例传递给SKScene实例?这样,您可以直接引用VC,而不必通过窗口,这似乎很容易出错。

如果您打算接受这个建议--而不太了解您的代码库--我会冒险猜测,为场景创建一个委托接口并在视图控制器中实现它可能是有意义的。接口看起来类似于:

代码语言:javascript
复制
@protocol AdDelegate
- (BOOL)requestInterstitialAdPresentation;
@end

就理解根视图控制器不实现requestInterstitialAdPresentation的原因而言,我认为最好的选择是调试应用程序并查看发生了什么。我怀疑您正在处理的是包装主VC的容器视图控制器,或者您正在呈现的场景出现在另一个窗口中。

票数 3
EN

Stack Overflow用户

发布于 2015-04-05 08:24:59

您可以使用简单的通知与您的viewController.In (您的viewController)通信:

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(requestInterstitialAdPresentation) name:@"showAdd" object:nil];

然后,在你的现场张贴通知,无论何时你想要你的广告呈现。在SKScene中:

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] postNotificationName:@"showAdd" object:nil];

希望这能帮上忙

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21868463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档