前提・実現したいこと
アウトレット接続しない場合はきちんとtableViewにセルが表示されますが、画像のようにアウトレット接続した時は
Thread 1: "[<UITableViewCell 0x7fa2054146a0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key cellLabel."
というエラーが出てしまいます。
ViewControllerの中身は以下に載せます。アウトレット接続しない場合はしたのコードできちんとセルが表示されます。
swift
1import UIKit 2 3class ViewController: UIViewController, UITableViewDelegate { 4 5 @IBOutlet weak var tableView: UITableView! 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 tableView.delegate = self 11 tableView.dataSource = self 12 tableView.register(TodoCell.nib, forCellReuseIdentifier: TodoCell.identifier) 13 self.tableView.estimatedRowHeight = 100 14 15 } 16 17 18 19} 20 21extension ViewController: UITableViewDataSource { 22 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 23 return 5 24 } 25 26 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 27 return 100 28 } 29 30 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 31 let cell = tableView.dequeueReusableCell(withIdentifier: TodoCell.identifier, for: indexPath) //as! TodoCell 32 //cell.cellLabel.text = "eieieiei" 33 return cell 34 } 35 36}
Labelをアウトレット接続することで、cell.cellLabel.text
とアクセスして文字を変更できるのではと考えましたができませんでした。コメントアウト部分を追加して実行したいです。
XibのUI部品をコードでアクセスして変更するのはできないのでしょうか?
Todo Cell のクラスは TodoCell になってますか?
あなたの回答
tips
プレビュー