使用 UIProgressView 在 swift 中意外发现 nil

Unexpectedly found nil in swift with UIProgressView

我创建了一个 progressView 并像这样链接它:

这是我在视图控制器中所做的:

class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {

     @IBOutlet weak var progressView: UIProgressView!
     @IBOutlet weak var KronosWebsite: WKWebView!

     override func loadView() {
         //initialize the webview
         progressView = UIProgressView()
         
         progressView.progress = 1.0

         KronosWebsite = WKWebView()
         self.view = KronosWebsite
         self.view.addSubview(progressView)
     }
 }

我有

Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional

这一行progressView.progress = 1.0

当您将 loadView 用于原本在故事板中的 vc 时添加 super.loadView()

 override func loadView() {
     super.loadView() 

或将所有代码插入 viewDidLoad ,也不要重新初始化

progressView = UIProgressView() 
KronosWebsite = WKWebView()

因为他们已经从故事板开始

The docs 如果您的视图控制器来自故事板或 xib,请说永远不要覆盖 loadView

loadView()

If you use Interface Builder to create your views and initialize the view controller, you must not override this method.

你目前在 loadView 中所做的一切都可以在情节提要中完成,所以只需删除 loadView 方法并连接你的 UIProgressViewWKWebView到故事板中的网点。您还可以在情节提要中将进度视图的初始进度设置为 1.0。