2014-10-16 5 views
0

Прежде чем начать, я знаю, что этот вопрос задавался много раз, но все они относятся к xcode5/object-C, а не к быстрой. Я только новичок в разработке приложений, поэтому я не смог понять цель-c и использовать ее быстро.Xcode6/Swift - Как реализовать iAdBannerView в нескольких контроллерах?

У меня есть adBannerView, работающий на моем первом контроллере представления, однако как я могу взять этот баннер и использовать его через другие мои 2-х контроллеры? Использую ли я функцию prepareForSegue (и если да, то как)?

Мой код adBannerView я в настоящее время (от here)

//... 
import iAd 

class ViewController: UIViewController, ADBannerViewDelegate { 

//link adBanner 
@IBOutlet var adBannerView: ADBannerView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    self.canDisplayBannerAds = true 
    self.adBannerView.delegate = self 
    self.adBannerView.hidden = true 
} 

func bannerViewWillLoadAd(banner: ADBannerView!) { 
    NSLog("bannerViewWillLoadAd") 
} 

func bannerViewDidLoadAd(banner: ADBannerView!) { 
    NSLog("bannerViewDidLoadAd") 
    self.adBannerView.hidden = false 
} 

func bannerViewActionDidFinish(banner: ADBannerView!) { 
    NSLog("bannerViewDidLoadAd") 
    //optional resume paused game code 

} 

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { 
    NSLog("bannerViewActionShouldBegin") 
    //optional pause game code 

    return true 
} 

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
    NSLog("bannerView") 
} 

//... 

Спасибо :)

ответ

1

Когда я столкнулся с этой проблемой, мое решение было создать ParentViewController, а другие рассматривают контроллеры inheritate от него. В контроллере родительского представления я создаю выход для представления, которое будет содержать iAdView, а в файле .xib каждого контроллера представления я свяжу контейнерный вид iAdView с созданной розеткой. После этого я создаю синглтон, который имеет все функции iAdView и свойство iAdView. В viewDidAppear родителя я спрашиваю singleton для iAdView и добавляю его в качестве подзадача контейнера представления iAd. Таким образом, в контроллерах представлений вы не увидите никакого кода iAdView, потому что все будет в ParentViewController и в singleton (разрешите его iAdManager). Надеюсь, поможет.