问题描述
我有这个烦人的问题。我搜了很多很多人建议了很多事情。 就像添加了这些 TableViewDataSource 和 TableViewDelegate 一样;
class SalesNewViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,UITableViewDelegate,UITableViewDataSource
连接参考插座;
并通过代码连接数据源和委托;
TableView.dataSource = self
TableView.delegate = self
我在尝试performSegue时遇到此错误,而没有 performSegue (例如,如果我想通过单击 TableViewCell 来打印 hello 进行控制台>)它不会给出任何错误;
func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "SalesSegue",sender: self)
}
即时通讯将相同的东西用于另一个View,它可以正常工作。任何帮助都将非常可爱。
编辑1:我有两种运行所需的方法。 numberOfRowsInSection 和 cellForRowAt
解决方法
如果您在Xcode帮助系统中搜索“ UITableViewDataSource”,则会获得有关该协议的文章。它说:
Only two methods of this protocol are required,and they are shown in the following example code.
// Return the number of rows for the table.
override func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return 0
}
// Provide a cell object for each row.
override func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Fetch a cell of the appropriate type.
let cell = tableView.dequeueReusableCell(withIdentifier: "cellTypeIdentifier",for: indexPath)
// Configure the cell’s contents.
cell.textLabel!.text = "Cell text"
return cell
}
您谈论的是连接事物,但没有提及实现这些方法。
假设视图控制器是表视图的数据源,则视图控制器至少需要实现这两种方法(numberOfRows(inSection:)
和cellForRow(at:)
)。
您可以将它们放置在视图控制器的主体中,也可以将其包含在为UITableViewDataSource
协议提供协议一致性的扩展中。
(请注意,numberOfRows(inSection:)
由苹果提供的示例代码将导致表视图为空。您需要将return 0
位替换为返回您的表格视图,无论对您的应用程序意味着什么。)