我已經創建UITableViewController
編程在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
從來都不是零,我測試
代碼崩潰:
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
連接在界面生成器到GUI元素。同一班級也在另一個地方使用。
@Sulthan它已連接。或者至少在我的第二張表中,這是使用相同的類,但是從IB入口,所有工作 –
你說標籤已連接,但你也說你沒有xib文件。既然你還沒有使用storyboard,你究竟是如何定義'MyTableCellTableViewCell'的視圖,以及你如何連接標籤? – Sulthan
@Sulthan我有一個故事板 –