IOS swift5 UIController 调用uitableview 函数问题。请协助

IOS swift5 UIController call uitableview function problem. Please assist

我有一个 UIController class 和一个 Tableview class。我想在 uicontroller 中包含 tableview。但我无法访问函数内部的表视图(甚至是静态或 public)。如何从 uicontroller 访问 tableview 功能?

万分感谢。长期与这个问题作斗争

import Foundation
import UIKit

class UIController: UIViewController {
private var tableView: UITableView = RegDropdownMenu(identifier: RegStepTwoIndentifier.regStepTwoTable)

init(identifier: String) {
 
    super.init()

    view.addSubview(tableView)
    
    // Cannot call the func
    tableView.testingFunc()
}

required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}
}




class TableView: UITableView {
private var identifier: String

init(identifier: String) {
    self.identifier = identifier
    super.init(frame: .zero, style: .plain)
    configTable()
}

private func configTable() {
    self.delegate = self
    self.dataSource = self
    self.translatesAutoresizingMaskIntoConstraints = false
    self.register(CellClass.self, forCellReuseIdentifier: identifier)
    self.allowsSelection = true
    self.separatorStyle = .none
    self.layer.masksToBounds = true
    self.backgroundColor = .white
    self.layer.borderColor = Styles.borderColor.cgColor
    self.layer.borderWidth = Styles.borderWidth
}

func testingFunc() {
    print("123")
}

required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}
}

您创建了一个名为 TableView

的自定义 UITableView 子class

这是执行此操作的代码行 class TableView: UITableView

但是,在您的 ViewController 中,您正在创建一个通用的 UITableView

private var tableView: UITableView

这应该改为

private var tableView: TableView 这是您创建的自定义 UITableView class 的名称。

在此之后,tableView.testingFunc() 应该可以工作了。