我没有将视图控制器指定为UITableViewDelegate,而是试图通过为UITableViewDelegate创建扩展来减少视图控制器中的代码。
当Swift 3语法正确时,为什么我会得到companyDetailsVC = CompanyDetailsViewController()行的错误“使用未解析标识符companyDetailVC”?
代码

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

编辑:我试图在没有故事板的情况下以编程的方式完成这项工作。我创建了一个UITableViewDelegate扩展,因为我试图减少视图控制器中的代码。

最佳答案

用下面的代码替换您的代码。您需要提供ViewController来创建它的扩展,并使用它的属性和方法。
确保在控制器中声明companyDetailsVC。在从块调用self之前,不需要使用self。

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

10-06 11:24