gpt4 book ai didi

swift - Storyboard/Swift 所有 IBOutlets 和 _view 都是 nil

转载 作者:可可西里 更新时间:2023-11-01 00:39:06 25 4
gpt4 key购买 nike

我正在开发一个 Swift 应用程序,遇到了一个疯狂的奇怪问题。我有一个简单的 Storyboard View Controller 设置,它有 3 个 UIButtons 一个 UIImageView 和一个 UIView(作为主视图的 subview )。

我想以编程方式将 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 属性都是 nil。 IBOutlets 为 Nil,UIViewController 本身的 _view 变量为 nil。

我不明白为什么会这样。一切都非常简单且易于连接。我从未在 Objective-C 中遇到过此类问题。任何建议表示赞赏!

enter image description here

enter image description here

最佳答案

删除 loadView 实现。不要覆盖该方法,始终使用 viewDidLoad

如果您覆盖 loadView,那么您将负责创建 Controller 的 View 并将其分配给 self.view

关于swift - Storyboard/Swift 所有 IBOutlets 和 _view 都是 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50460458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com