在视图Swift中有两个tableview

时间:2018-06-11 16:15:40

标签: ios swift uitableview

我试图在一个视图中有两个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

1 个答案:

答案 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

    }
}