在 UITableViewDelegate 扩展中使用未解析的标识符

Use of unresolved identifier in UITableViewDelegate extension

我没有将视图控制器指定为 UITableViewDelegate,而是试图通过为 UITableViewDelegate 创建扩展来减少视图控制器中的代码。

为什么 "Use of unresolved identifier companyDetailVC" 行 companyDetailsVC = CompanyDetailsViewController() 是正确的 Swift 3 语法?

代码

extension TableViewDelegate: UITableViewDelegate {
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        companyDetailsVC = CompanyDetailsViewController()
        self.present(companyDetailsVC, animated: true, completion: nil)
    } 
}

编辑: 我正在尝试在没有情节提要的情况下以编程方式执行此操作。我创建了一个 UITableViewDelegate 扩展,因为我试图减少视图控制器中的代码。

呈现 Viewcontroller 的代码应该有点像这样 扩展名应该像

extension YourClassNameHere: UITableViewDelegate {
    //then your did select method comes here and in that put this code for presenting the viewcxontroller
    let companyDetailsVC = CompanyDetailsViewController() //change this to your class name
    self.present(companyDetailsVC, animated: true, completion: nil)
}

用以下代码替换您的代码。您将需要提供您的 ViewController 来创建它的扩展并使用它的 属性 和方法。

确保在控制器中声明了 companyDetailsVC。在从块中调用之前,您不需要使用 self。

extension yourViewController: UITableViewDelegate {
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.companyDetailsVC = CompanyDetailsViewController()
    self.present(companyDetailsVC, animated: true, completion: nil)
  }    
}