iAdをポップオーバーに表示したいとします。共有インスタンスクラスを使用してdisplayAd
メソッドを呼び出します。ここに私の共有インスタンスのクラスがある:iAdが利用可能かどうかを確認してください。
class Share : NSObject ,UIPopoverPresentationControllerDelegate {
static let sharedInstance = Share()
func displayAd(sender:UIViewController) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("PopOverVC") as UIViewController
vc.preferredContentSize = CGSize(width: 310, height: 250)
let navC = UINavigationController(rootViewController: vc)
navC.modalPresentationStyle = UIModalPresentationStyle.Popover
let popOver = navC.popoverPresentationController
popOver?.delegate = self
popOver?.sourceView = sender.view
popOver?.sourceRect = CGRectMake(CGRectGetMidX(sender.view.bounds), CGRectGetMidY(sender.view.bounds),0,0)
popOver?.permittedArrowDirections = UIPopoverArrowDirection(rawValue:0)
navC.navigationBarHidden = true
sender.presentViewController(navC, animated: true) {}
}
}
私は (IADあるPopOverVCが含まれています)ポップオーバーを表示するdisplayAd
機能を使用し、これはPopOverVC
クラスです:
class PopOverVC: UIViewController,ADBannerViewDelegate {
var ad = ADBannerView()
@IBOutlet var Banner: ADBannerView!
@IBAction func CloseBtn(sender: UIButton) {
self.dismissViewControllerAnimated(true, completion: nil)
}
override func viewDidLoad() {
Banner = ad
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
sharedAd.hidden = false
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
sharedAd.hidden = true
self.dismissViewControllerAnimated(true, completion: nil)
}
}
は今、私がしたいことは、他のView ControllerからdisplayAd
メソッドを呼び出してから、iAdが利用可能かどうかを確認してから表示することです。 今、私のコードはPopOverを表示し、iAdの利用可能性をチェックし、利用できない場合は終了します。 iAdが利用可能でない限り、私はPopOverを表示したくありません。
これを達成するにはどうすればよいですか?
おかげ
iAdが廃止されました:https://developer.apple.com/news/?id=01152016a –