我将此视图控制器(请参阅下面的代码)链接到表视图控制器故事板。我得到实际的表视图显示但不是我的自定义单元格。对我做错了什么想法?
很高兴知道: - 我有一个专门为我的手机制作的单独的快速文件 - 我已经将小区与小区标识符连接起来 - 这不是我的主视图控制器。
提前致谢!
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()
}
}
}
答案 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(常见错误)
答案 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
}