我成功测试了应用内购买后广告的移除。我只需要在他们完成付款并完成交易后,当前 GameScene 上的横幅广告仍然存在。为了删除它们,我必须重新启动该应用程序。我的 GameViewController 在 viewDidLoad 函数中进行了检查。在 GameScene 中完成交易后,如何“刷新”viewDidLoad?
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.addObserver(self, selector: "doRemoveAds:", name: "RemoveAds",object:nil)
if let scene = StartScene(fileNamed:"StartScene") {
let skView = self.view as! SKView
skView.showsFPS = false
skView.showsNodeCount = false
skView.ignoresSiblingOrder = true
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
if NSUserDefaults.standardUserDefaults().boolForKey("RemoveAds") == false{
loadBanner()
}
}
@objc func doRemoveAds(notification: NSNotification) {
adBanner.hidden = true
}
最佳答案
首先不需要再调用viewcontroller。您可以简单地执行以下步骤。
- 假设您在 ViewDidLoad 方法中显示广告,假设您正在添加它 您可以在交易成功的某些方法中隐藏它。
- 如果您正在添加 subview 广告,您可以在收到交易成功通知的方法中将其删除。
编辑:
objective-c :
首先在您控制广告的 View Controller 中添加观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doRemoveHideAds:) name:@"RemoveOrHideAds" object:nil];
之后在同一个viewcontroller中添加通知方法:
-(void)doRemoveHideAds:(NSNotification*)notification {
// Hide Or remove Ads
}
现在在你获得inApp purchase transaction Success方法的方法中,像这样调用Observer:
[[NSNotificationCenter defaultCenter] postNotificationName:@"RemoveOrHideAds" object:obj];
swift :
首先在您控制广告的 View Controller 中添加观察者:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "doRemoveHideAds:", name: "RemoveOrHideAds", object: nil)
之后在同一个viewcontroller中添加通知方法:
func doRemoveHideAds (notification: NSNotification){
// Hide Or remove Ads
}
现在在你获得inApp purchase transaction Success方法的方法中,像这样调用Observer:
NSNotificationCenter.defaultCenter().postNotificationName("RemoveOrHideAds", object: nil)
希望对你有所帮助。
关于ios - 如何从 GameScene 刷新 GameViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353544/