GADBannerView: что нужно установить как «rootviewcontroller» при создании в xib-файле - PullRequest
0 голосов
/ 13 апреля 2019

Я создаю 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. Может кто-то предложитьисправить способ, которым я пытался это сделать, или предложить другой путь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...