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