无法覆盖 UIViewController 中的 UITableView 委托方法
Unable to override UITableView delegate methods in UIViewController
我正在尝试将我的 UITableViewController
转换为带有 UITableView
元素的 UIViewController
。我将超类更改为 UIViewController
,添加了 UITableViewDelegate
,添加了本地 UITableView
(我链接到故事板中的 table 视图),并设置了 tableView.delegate = self
.现在我试图重写 tableView()
方法,以便我可以填充我的单元格。但是,它不允许我这样做 - "Method does not override any method from its superclass"。这是相关代码:
class MenuViewController: UIViewController, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Click Item"
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "menuItemCell")
tableView.delegate = self
}
有什么我想念的吗?我检查了类似的 Whosebug 问题,这就是他们所说的。我对这一切都很陌生,所以我可能会忽略一些东西。
由于您不再编写 UITableViewController
的子class,因此您不再覆盖 它的委托和数据源函数,但您提供了自己的函数实施以符合这些协议。 Swift 严格检查您声明要覆盖的方法是否实际上已经在基础 class 中实现。对于 UITableViewController
是这样,但对于 UIViewController
.
则不再如此
简而言之:从委托和数据源函数中删除 override
关键字。
我正在尝试将我的 UITableViewController
转换为带有 UITableView
元素的 UIViewController
。我将超类更改为 UIViewController
,添加了 UITableViewDelegate
,添加了本地 UITableView
(我链接到故事板中的 table 视图),并设置了 tableView.delegate = self
.现在我试图重写 tableView()
方法,以便我可以填充我的单元格。但是,它不允许我这样做 - "Method does not override any method from its superclass"。这是相关代码:
class MenuViewController: UIViewController, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Click Item"
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "menuItemCell")
tableView.delegate = self
}
有什么我想念的吗?我检查了类似的 Whosebug 问题,这就是他们所说的。我对这一切都很陌生,所以我可能会忽略一些东西。
由于您不再编写 UITableViewController
的子class,因此您不再覆盖 它的委托和数据源函数,但您提供了自己的函数实施以符合这些协议。 Swift 严格检查您声明要覆盖的方法是否实际上已经在基础 class 中实现。对于 UITableViewController
是这样,但对于 UIViewController
.
则不再如此
简而言之:从委托和数据源函数中删除 override
关键字。