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()
应该可以工作了。
我有一个 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
这是执行此操作的代码行 class TableView: UITableView
但是,在您的 ViewController
中,您正在创建一个通用的 UITableView
private var tableView: UITableView
这应该改为
private var tableView: TableView
这是您创建的自定义 UITableView class 的名称。
在此之后,tableView.testingFunc()
应该可以工作了。