为啥我在关闭视图控制器后无法显示我的 Facebook 插页式广告?
Posted
技术标签:
【中文标题】为啥我在关闭视图控制器后无法显示我的 Facebook 插页式广告?【英文标题】:Why cant I show my facebook interstitial ad after dismissing a view controller?为什么我在关闭视图控制器后无法显示我的 Facebook 插页式广告? 【发布时间】:2016-07-27 04:27:36 【问题描述】:我正在使用 ReplayKit,当我按下取消或保存按钮时,它会关闭视图控制器,我想展示一个广告。问题是广告没有显示,我收到此错误:我该如何解决?谢谢!
警告:在调用接收到的消息、丢弃传入消息并使连接无效时捕获异常。 例外:必须在主线程上调用此方法
internal func previewControllerDidFinish(previewController: RPPreviewViewController)
previewViewController.dismissViewControllerAnimated(true, completion: nil)
NSNotificationCenter.defaultCenter().postNotificationName("loadAd", object: nil)
【问题讨论】:
异常:必须在主线程上调用此方法。您可以使用 GCD 在主线程中分派函数。顺便说一句,用户界面必须用主线程更新。 对于 Swift 3 使用DispatchQueue.main.async // put your code here
【参考方案1】:
所有与 UI 相关的操作都必须在主线程上完成。你可以使用 GCD 做这样的事情:
dispatch_async(dispatch_get_main_queue())
previewViewController.dismissViewControllerAnimated(true, completion: nil)
你也可以在dismissViewControllerAnimated的完成块中发布通知
【讨论】:
我现在收到此错误:警告:尝试在以上是关于为啥我在关闭视图控制器后无法显示我的 Facebook 插页式广告?的主要内容,如果未能解决你的问题,请参考以下文章