2015-01-28 2 views
0

코드에 문제가 있습니다. 프로그래밍 방식으로 iAd를 Xcode의 내 뷰에 추가하려고합니다. 무작위로 작동하면 몇 번이고 코드를 변경하지 않고 다시 실행하면 더 이상 작동하지 않습니다. 몇 번이나 무작위로 작동하면서 다른보기로 전환 한 다음 iAd가있는 화면으로 돌아 가면 iAd는 빈 광고 프레임 일 뿐이고 애니메이션이 표시되지 않습니다. 단순히 iAd를로드하지 않습니다. 도와주세요! 코드 :iAd가 Xcode 6에서 작동하지 않습니다.

import UIKit 
import Foundation 
import iAd 

class ViewController: UIViewController, ADBannerViewDelegate { 
//variables******************************************* 
var adBannerView = ADBannerView(frame: CGRect.zeroRect) 

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



override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

//iAd************************************************** 

func loadAds() 
{ 
    adBannerView = ADBannerView(frame: CGRect.zeroRect) 
    adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - adBannerView.frame.size.height/2 - 50) 
    adBannerView.delegate = self 
    adBannerView.hidden = true 
    view.addSubview(adBannerView) 
} 

func bannerViewWillLoadAd(banner: ADBannerView!) 
{ 

    println("sort of working1") 

} 

func bannerViewDidLoadAd(banner: ADBannerView!) 
{ 

    adBannerView.hidden = false 
    println("sort of working2") 

} 

func bannerViewActionDidFinish(banner: ADBannerView!) 
{ 


    println("sort of working3") 

} 

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool 
{ 

    println("sort of working4") 
    return true 
} 

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) 
{ 
    adBannerView.hidden = true 
    println("error1") 
} 

} 

업데이트 1/28/15 : 는 어떻게 든 제군이 코드를 변경하지 않고 지금은 작동하지만 내가 또 다른 문제가 발생하고있다. iAd가 표시된보기를 종료하면 프레임의 하단 모서리에 작은 iAd 로고가있는 빈 흰색 프레임이 나타납니다. 또한 큰 문제는 iAd를 사용하여보기의 탭 표시 줄을 어둡게하는 것입니다.

+0

ADBannerView(adType: ADAdType.Banner) 여기에 내 대답을 참조하십시오 [시험 제군이로드되지 않습니다 (http://stackoverflow.com/questions/27995945/test-iads- 실 거예요/28026491 # 28026491) – duan

+0

작동하지 않았습니다. 나는 이미 링크가 loadAds() 함수에서해야한다고 말합니다. 탭 표시 줄이 예상보다 어둡기 때문에 (광고없는보기와 비교)보기를 전환하면 iAd가 빈 프레임으로 바뀝니다. @Carrl –

+0

또한 광고가있는 뷰에있을 때 "일종의 작업 1 일종의 작업 2" 을 출력하지만보기를 전환 할 때 "error1"을 출력하고 광고와 함께보기로 돌아갑니다. –

답변

0

println도 작동하지 않습니까? iAd가 항상 표시되는 것은 아니며 iAd 서버에 대한 연결성에 따라 달라 지므로 didFailToReceiveAdWithError를 구현하고 배너를 숨겨야하는 이유가 있습니다.이 경우 어떤 문제로 인해 서버에서 정보가 전달되지 않습니다.

+0

println이 작동 중입니다. 내가 그것을하려고하면 "working 1"과 "working 2"를 반환하고, 뷰를 전환하면 "error1"이 표시됩니다. –

+0

또한 탭 막대가 어두워집니다. –

+0

업데이트 된 질문을 참조하십시오. –

0

자동 iAd 프리젠 테이션을 사용하는 경우 self.canDisplayBannerAds = true 이후에 다른 작업을 수행 할 필요가 없습니다. View Controller는 자동으로 축소되며 iAd를 사용할 수있게되면 자동 레이아웃이 트리거됩니다. iAd가 하단에 표시됩니다.

따라서 샘플 코드는 단지가 될 수 있습니다

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

을 여기에 다른 행동이 단순한 iAd example입니다 필요합니다. 싱글 톤 ADBannerView을 사용하며 뷰의 맨 위에 표시 할 수 있습니다. 어쨌든 적절한 방법을 수동으로 인스턴스화하는 것을 고려 ADBannerView은 다음과 같습니다

+0

튜토리얼을 시험해 보았는데, 오류가 발생했습니다 : 해결되지 않은 식별자 'moveADBannerToViewController'를 사용하십시오. 내 응용 프로그램에 Global_iAd를 넣었습니다. –

+0

또한 업데이트 된 질문을 참조하십시오. –

+0

위의 솔루션을 사용해 보셨습니까? 그것은 단지 작동해야합니다. 언급 한 예제는 다른 동작이 필요한 경우에만 필요합니다. 자동 배너를 사용하지 않으려면'self.canDisplayBannerAds'를 true로 설정하면 안됩니다. 기본적으로 false입니다. –