TableViewのHeaderViewを作成してLabelに値をセットするときにクラッシュしてしまいます。接続がもいだいなくできているのでnilになるはずがないと思うのですがoptionalで落ちてしまいます。
作成したHeaderView用のクラスはこのようになっています。
class PictureBookTableHeaderView: UIView { @IBOutlet weak var descriptionLabel: UILabel! func setData(text: String) { descriptionLabel.text = text //ここでクラッシュしてしまいます } }
error
1Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
ViewController側で値をセットしている部分のコードは以下です
override func viewDidLoad() { super.viewDidLoad() let headerView = PictureBookTableHeaderView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 100)) headerView.setData(text: "text text text text text text text text text text text text text text") tableView.tableHeaderView = headerView }
このような状況でうす何が問題なのでしょうか?
override func viewDidLoad() {
を実行している、UIViewCotrollerのコード全容も記載された方がいいかと。
あと、各ViewCotrollerなどの、ライフサイクルに関して調べ、勉強されると自ずと答えがでるかと・・・。
調べ、検証しているわけではないですが、
この書き方だと、コードとストーリーボードのアウトレット接続が、されない故に、nil状態なんだと思いますよ。
(調べ検証し、わかったら回答しますが、もう少しご自身でも調べてみることを勧めます)