无法在UIViewController中覆盖UITableView委托方法

时间:2015-08-04 15:49:50

标签: ios swift uitableview uiviewcontroller

我尝试将UITableViewController转换为UIViewController元素UITableView。我将超类更改为UIViewController,添加了UITableViewDelegate,添加了一个本地UITableView(我在故事板中链接到我的表格视图),然后设置tableView.delegate = self。现在我试图覆盖tableView()方法,以便我可以填充我的单元格。但是,它不允许我这样做 - "方法不会覆盖其超类的任何方法"。这是相关代码:

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
}

我有什么遗失的东西吗?我检查了类似的stackoverflow问题,这就是他们所说的。我对这一切都很陌生,所以我可能会忽略一些事情。

1 个答案:

答案 0 :(得分:4)

由于您不再编写UITableViewController的子类,因此不再覆盖其委托和数据源函数,但您提供自己的实现以符合这些协议。 Swift严格检查您声明要覆盖的方法是否实际上已在基类中实现。 UITableViewController就是这样,但UIViewController不再是这种情况 简而言之:从委托和dataSource函数中删除override关键字。