【问题标题】:UIViewController with closure init带有闭包初始化的 UIViewController
【发布时间】:2020-10-26 13:54:01
【问题描述】:

我尝试创建UIViewController:

class CategoriesVC: UIViewController {
    let tableView = UITableView()
    var completionHandler: (Category)->Void?
    
    init(completionHandler: @escaping (Category)->Void) {
        super.init()
        
        self.completionHandler = completionHandler
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

我得到这个错误:

Must call a designated initializer of the superclass 'UIViewController'

在这一行:

super.init()

【问题讨论】:

    标签: ios swift iphone uiviewcontroller


    【解决方案1】:

    错误清楚地表明您必须为UIViewController 调用指定init,在本例中为super.init(nibName:,bundle:)

    另外,completionHandler 语法错误,这里是修复:

    class CategoriesVC: UIViewController {
        let tableView = UITableView()
        var completionHandler: ((Category)->Void)?
        init(completionHandler: @escaping ((Category)->Void)) {
            super.init(nibName: nil, bundle: nil)
            self.completionHandler = completionHandler
        }
        required init?(coder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      相关资源
      最近更新 更多