我在ViewController.h中创建了一个名为 - (void)showFullScreenAd。
的方法我试着在我的场景中调用它。 我试过[self.view.window.rootController showFullScreenAd]。无法找到这种方法。
我尝试了ViewController * vc = [[ViewController alloc] init]
它成功完成了NSLog"插页式广告请求"。但没有显示广告。
如果我直接在ViewController.m中使用该方法 - viewDidLoad,那么NSLog会记录相同的消息"非页内广告请求"并显示插页式广告。
答案 0 :(得分:0)
关于如何使用iAd的建议;
ViewController.m中的:
MyScene * scene = [MyScene sceneWithSize:skView.bounds.size];
scene.viewController = self;
然后在你的MyScene.h中放下这些行:
#import "ViewController.h"
@property (nonatomic) ViewController *viewController;
也不要忘记在ViewController.m中添加iAd;
[self.view addSubview:adView];
答案 1 :(得分:0)
我会使用通知:SKScene
对象向通知中心(NSNotification
)发布系统范围的通知(NSNotificationCenter
),目标视图控制器只是'注册'( ie,监听)同一个通知并实现一个处理程序方法。这是Objective-C / Cococa的一种普遍模式。
一些好处是:
它是可扩展的:如果在将来,您希望将相同的消息发送到视图控制器形成不同的场景,只需从新场景发布相同的通知:无需包含标题并定义新的属性。只需要包含通知名称的定义。
视图控制器拥有视图,视图显示场景。通过不从场景中引用视图控制器,可以避免引用周期的风险,从而避免内存泄漏。
顺便说一句,这就是我在游戏中所做的事情。