我试图在一个视图中有两个tableview,我为每个单元格提供了一个唯一的标识符,每个tableview都有自己的单元格类。代码是
class ReportsViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var tableView2: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
extension ReportsViewController : UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! BreakingNewsTableViewCell
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 145
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return "Breaking News"
}
func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .medium
let date = Date()
let dateString = dateFormatter.string(from: date)
return "Updated on " + dateString
}
private func tableView2(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 2
}
private func tableView2(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell2", for: indexPath) as! TopStoriesTableViewCell
return cell
}
private func tableView2(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 145
}
private func tableView2(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
private func tableView2(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return " Top Stories"
}
private func tableView2(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .medium
let date = Date()
let dateString = dateFormatter.string(from: date)
return "Updated on " + dateString
}
}
然而,它一直在崩溃,因为我的细胞没有注册?我可以知道我在这里犯了什么错误吗?我还将tableview委托链接到self
答案 0 :(得分:2)
您需要像这样切换所有方法
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if tableView == self.tableView {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! BreakingNewsTableViewCell
return cell
}
else {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell2", for: indexPath) as! cell2
return cell
}
}