gpt4 book ai didi

ios - 使用用户定义的单元格以编程方式创建 UITableViewController

转载 作者:行者123 更新时间:2023-11-28 09:42:25 25 4
gpt4 key购买 nike

我在 viewDidLoad() 中以编程方式创建了 UITableViewController:

resultsController = UITableViewController(style: UITableViewStyle.plain)
resultsController.tableView.register(MyTableCellTableViewCell.self, forCellReuseIdentifier: "userFoundCell")
resultsController.tableView.dataSource = self
resultsController.tableView.delegate = self

但是,当我以后做

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

var cell: MyTableCellTableViewCell? = tableView.dequeueReusableCell(withIdentifier: "userFoundCell", for: indexPath) as? MyTableCellTableViewCell

if (cell == nil){
cell = MyTableCellTableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "userFoundCell")
}

cell!.lblTmp!.text = "test"
return cell!
}

cell 永远不会是 nil,我测试过了

代码崩溃:

fatal error: unexpectedly found nil while unwrapping an Optional value on cell!.lblTmp!.text = "test"

我的 MyTableCellTableViewCell 看起来像这样

class MyTableCellTableViewCell: UITableViewCell {
@IBOutlet var lblTmp: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}

IBoutlet 在 Interface Builder 中连接到 GUI 元素。同样的类也在另一个地方使用。

最佳答案

如果您有带有 xib 和类的自定义 tableview 单元格,那么您应该通过以下方式注册您的单元格。

如果您的表格 View 单元格 xib 文件名类似于“MyTableCellTableViewCell”,则替换您的行

resultsController.tableView.register(MyTableCellTableViewCell.self, forCellReuseIdentifier: "userFoundCell")

用这条线

resultsController.tableView.register(UINib(nibName: "MyTableCellTableViewCell", bundle: nil), forCellReuseIdentifier: "userFoundCell")

关于ios - 使用用户定义的单元格以编程方式创建 UITableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43824024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com