我没有将视图控制器指定为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)
}
}