表视图单元格未在xcode中显示

时间:2016-09-03 05:55:06

标签: ios swift xcode

我将此视图控制器(请参阅下面的代码)链接到表视图控制器故事板。我得到实际的表视图显示但不是我的自定义单元格。对我做错了什么想法?

很高兴知道: - 我有一个专门为我的手机制作的单独的快速文件 - 我已经将小区与小区标识符连接起来 - 这不是我的主视图控制器。

提前致谢!

import UIKit


class ForecastTableViewController: UITableViewController {

var forecasts = [Forecast]()

override func viewDidLoad() {
    super.viewDidLoad()

    self.tableView.reloadData()

}

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return forecasts.count 
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if let cell = tableView.dequeueReusableCell(withIdentifier: "forecastCell", for: indexPath) as? ForecastCell {

        let forecast = forecasts[indexPath.row]
        cell.configureCell(forecast: forecast)
        return cell

    } else {

        return ForecastCell()

    }

}

}

4 个答案:

答案 0 :(得分:2)

在重新加载功能

之上的viewDidload中添加以下行
  self.tableView.delegate = self
self.tableView.dataSource = self

self.tableView.reloadData()中不需要viewDidload所以删除它!

答案 1 :(得分:0)

如果没有先注册,请注册您的手机。

tableView.registerClass(MyCell.classForCoder(), forCellReuseIdentifier: kCellIdentifier)

如果您使用带Xib的单元格,则注册

self.tableView.registerNib(UINib(nibName: "UICustomTableViewCell", bundle: nil), forCellReuseIdentifier: "UICustomTableViewCell")

答案 2 :(得分:0)

将其放入viewDidLoad()方法

self.tableView.registerNib(UINib(nibName: "ForecastCell", bundle: nil), forCellReuseIdentifier: "forecastCell")

还要确保您实际设置了单元格的标识符而不是恢复ID(常见错误)

enter image description here

答案 3 :(得分:0)

尝试以这种方式更改代码,并记住将数据放入forecasts数组

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "forecastCell", for: indexPath) as? ForecastCell 

        let forecast = forecasts[indexPath.row]
        cell.configureCell(forecast: forecast)
        return cell

    }