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