【问题标题】:Unexpectedly found nil in swift with UIProgressView使用 UIProgressView 在 swift 中意外发现 nil
【发布时间】:2020-08-26 04:00:47
【问题描述】:

我创建了一个 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)
     }
 }

我有

致命错误:在隐式展开 Optional 时意外发现 nil

在这一行progressView.progress = 1.0

【问题讨论】:

    标签: swift uiprogressview


    【解决方案1】:

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

     override func loadView() {
         super.loadView() 
    

    或者在viewDidLoad里面插入所有代码,也不要重新初始化

    progressView = UIProgressView() 
    KronosWebsite = WKWebView()
    

    因为他们已经从情节提要开始

    【讨论】:

    • 好的,谢谢 SH_Khan super.loadView() 是缺少的东西
    • 同时删除上面的 re-init 2 行
    【解决方案2】:

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

    loadView()

    如果您使用 Interface Builder 创建视图并初始化视图控制器,则不得覆盖此方法。

    您当前在loadView 中所做的一切都可以在情节提要中完成,因此只需删除loadView 方法并将您的UIProgressViewWKWebView 连接到情节提要中的插座。您还可以在情节提要中将进度视图的初始进度设置为 1.0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 2014-09-10
      相关资源
      最近更新 更多