无法向 UITableViewCell 添加值
Posted
技术标签:
【中文标题】无法向 UITableViewCell 添加值【英文标题】:Cannot add values to a UITableViewCell 【发布时间】:2018-01-28 17:49:58 【问题描述】:我有两个视图控制器,其中一个是侧面菜单。 我尝试使用数组中的数据初始化其单元格,但在尝试为单元格标签文本分配值时一直出错。 这是我的代码:
class TableViewCell: UITableViewCell
@IBOutlet weak var cellImage: UIImageView!
@IBOutlet weak var cellLabel: UILabel!
class SideMenuTableViewController: UITableViewController
let vc = ViewController()
override func viewWillAppear(_ animated: Bool)
super.viewWillAppear(animated)
tableView.reloadData()
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return vc.array.count
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
let myImage = UIImage(named: "checkbox")
cell.cellLabel.text = "test" //HERE IS THE ERROR
cell.cellImage.image = myImage
return cell
这是错误。
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
在调试器中,我可以看到我的单元格包含来自Sotryboard
的标签和图像,但我无法将myImage
和任何文本分配给单元格。
我究竟做错了什么?
提前感谢您的帮助。
【问题讨论】:
究竟是哪一行导致了崩溃?插座是否连接在电池中? 谢谢@maddy,我还没有连接插座。 ***.com/questions/32170456/…的可能重复 【参考方案1】:好像
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
导致崩溃。您是否记得将Storyboard
中的单元原型的类设置为TableViewCell
?
【讨论】:
另外不要忘记将标识符设置为“cell” 是的,我做到了。问题的根源是忘记连接插座。【参考方案2】:检查: 1.自定义单元格在xib中设置了reusableCellIdentifier。
-
如果您使用 xib 进行自定义单元格,自定义单元格应使用
UITableView
注册:
tableView.register(TableViewCell.self, forCellReuseIdentifier: "你的标识符")
【讨论】:
以上是关于无法向 UITableViewCell 添加值的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewCell 中添加 UICollectionView 后 UI 突然发生变化
无法与 UITableViewCell 中的任何内容进行交互,我在某处被布尔值阻塞,它在哪里?