Search code examples
delegatesswift2iadviewcontrollerxcode7

How to set iAd Delegate to new View Controller


I am developing an application using Xcode 7 and Swift 2. I recently discovered an error in my code. In the debugger log (I think that is what it is called) , it printed this:

[AppDeveloper] ADBannerView: Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:): Error Domain=ADErrorDomain Code=7 "Ad was unloaded from this banner" UserInfo={ADInternalErrorCode=7, NSLocalizedFailureReason=Ad was unloaded from this banner, ADInternalErrorDomain=ADErrorDomain}

I did some research and found out that I needed this code:

iAdBannerView.delegate = self

In my viewDidLoad method. I tried it, and I no longer recieved the error. However, I have two viewControllers. Both contain iAds. In the original view controller, ViewController.swift, the code workds. In the view controller that I later added, AboutViewContoller, I get this error:

Cannot assign a value of type 'AboutViewController' to a value of type 'ADBannerViewDelegate?"

Could someone please show me my error in my code?


Solution

  • Earlier, I had:

    class AboutViewController: UIViewController {
    

    I forgot the ADBannerViewDelegate. The correct code is:

    class AboutViewController: UIViewController, ADBannerViewDelegate {
    

    Thanks to Charles A. and Daniel Storm for helping out!