GADBannerView: что нужно установить как "rootviewcontroller" при создании в xib-файле

Я создаю XIB-файл, который, когда он применяется, устанавливает вид, который будет просто GADBannerView, Как вы уже догадались, я не могу установить rootViewController собственность на self к AdXib сам файл, так что привести меня к созданию IBInspectable просто установить свойство там - но вы не можете установить UIViewController в IBInspectable, Я не мог понять это с помощью литья строк, так что:

Может ли кто-нибудь помочь мне правильно наложить струны или предложить лучший способ установить rootViewController имущество?

Спасибо

Файл AdXib (для ясности я пропустил большую часть процесса загрузки рекламы):

import UIKit
import GoogleMobileAds

class AdXib: UIView, GADBannerViewDelegate {

@IBOutlet var contentView: UIView!
@IBOutlet var bannerView: GADBannerView!
var viewcontrollerThatIsSelfForGADBannerView: UIViewController

@IBInspectable var rootViewController: UIViewController {
    didSet {
        viewcontrollerThatIsSelfForGADBannerView = self.rootViewController
    }
}
//tried but couldn't figure out how to set a string as a uiview controller...
@IBInspectable var rootViewController: String {
    didSet {
        viewcontrollerThatIsSelfForGADBannerView = "\(self.rootViewController)"
    }
}

override init(frame: CGRect) {
    super.init(frame: frame)
    initializeView()
}
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    initializeView()
}

private func initializeView(){
    Bundle.main.loadNibNamed("AdXib", owner: self, options: nil)
    addSubview(contentView)

    //bannerView.rootViewController = self <--- error
    bannerView.rootViewController = viewcontrollerThatIsSelfForGADBannerView

    bannerView.load(request)

   }
}

При установке свойства IBInspectable как UIViewControllerкод скомпилирован нормально, но не появился в конструкторе интерфейса, так как вы не можете использовать этот тип ( https://medium.com/anantha-krishnan-k-g/ibdesignable-and-ibinspectable-in-swift-3-702d7dd00ca). Я решил попробовать использовать String, но не мог понять, как установить это как UIViewController тип. Может ли кто-нибудь предложить исправление того, как я пытался это сделать, или предложить другой путь?

0 ответов

Другие вопросы по тегам