Я работаю над приложением Swift и столкнулся с сумасшедшей странной проблемой.У меня есть простая настройка контроллера представления раскадровки, он имеет 3 UIButtons
a UIImageView
и UIView
(как подпредставление основного представления).
Я хочу программно добавить WKWebView
вUIView
.
Достаточно просто, верно?Все вышеперечисленное находится в Storyboard View, объявлено в пользовательском классе UIViewController
и подключено в IB.Однако во время выполнения все равно нулю.Это фрагмент моего кода:
@IBOutlet var button1 : UIButton!;
@IBOutlet var button2 : UIButton!;
@IBOutlet var button3 : UIButton!;
@IBOutlet weak var containerForWebView: UIView!
var webView: WKWebView!
override func loadView()
{
}
override func viewDidLoad()
{
super.viewDidLoad()
displayWebPage()
}
override func viewWillAppear(_ animated: Bool)
{
super.viewWillAppear(animated)
}
override func viewDidLayoutSubviews()
{
super.viewDidLayoutSubviews()
}
private func displayWebPage()
{
webView = WKWebView()
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
webView.frame = CGRect(origin: CGPoint.zero, size: containerForWebView.frame.size)
webView.navigationDelegate = self
containerForWebView.addSubview(webView)
let url = URL(string: "https://www.google.com")!
webView.load(URLRequest(url: url))
}
Когда код вызывает метод displayWebPage()
, я разбиваю первую строку.В отладчике вы можете видеть, что все свойства UIViewController
равны нулю.IBOutlets равны Nil, а переменная _view самого UIViewController
равна нулю.
Я не понимаю, почему это происходит.Все довольно просто и легко связано.Я никогда не сталкивался с такой проблемой в Objective-C.Любой совет приветствуется!