如何使用AppDelegate在视图之间共享iAd横幅
我期待在我的应用程序中实现iAd。 到目前为止,我已经设法让他们正确显示/解雇在每个视图使用下面。
应用程序代表:
import UIKit import iAd @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var adBannerView = ADBannerView()
视图控制器1:
import UIKit import iAd class HomeScreenViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, ADBannerViewDelegate { let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate //Creates reference to the AppDelegate override func viewDidLoad() { super.viewDidLoad() loadAds() } func loadAds(){ self.appDelegate.adBannerView.removeFromSuperview() self.appDelegate.adBannerView.delegate = nil self.appDelegate.adBannerView = ADBannerView(frame: CGRect.zeroRect) self.appDelegate.adBannerView.center = CGPoint(x: view.bounds.size.width / 2, y: view.bounds.size.height - self.appDelegate.adBannerView.frame.size.height / 2) self.appDelegate.adBannerView.delegate = self self.appDelegate.adBannerView.hidden = true view.addSubview(self.appDelegate.adBannerView) } func bannerViewDidLoadAd(banner: ADBannerView!) { println("bannerViewDidLoadAd") self.appDelegate.adBannerView.hidden = false } func bannerViewActionDidFinish(banner: ADBannerView!) { println("bannerViewActionDidFinish") } func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { println("didFailToReceiveAdWithError") self.appDelegate.adBannerView.hidden = true }
我的目标是在多个视图中显示相同的广告,以供用户在其中切换。 不过,在实践中,当你从一个视图转向另一个视图时,广告停止加载,必须重新开始。 有一个更简单的方法将这个adBannerView从一个VC传递到另一个?
任何帮助,将不胜感激。 谢谢!
一致
self.appDelegate.adBannerView = ADBannerView(frame: CGRect.zeroRect)
您正在创build一个新的ADBannerView实例并丢弃旧实例。 所以你不分享视图对象,只是variables。 删除这一行。 完成这个之后,
self.appDelegate.adBannerView.delegate = nil
没有任何意义,因为你稍后将其设置为self
。 也删除它。
另见https://developer.apple.com/library/ios/technotes/tn2286/_index.html
- 在swift中configuration深层链接?
- 如何从AppDelegate中移动这些stream程,并从每个Call中设置个别代理?
- 对应用程序开发的build议iOS。 ApplicationDidEnterBackground
- iPhone registerForRemoteNotificationTypes不会产生错误,但不会触发授予设备令牌的委托
- 使用GIDSignIn处理使用其他Google应用程序login时,不能获取Google用户
- AppDelegate和ViewController类的iOS区别
- 想从appdelegate调用ViewController的方法
- 如何检测Swift 2中的所有触摸
- Swift:展示主要和替代(login/入职)stream程的最佳方式是什么?