Swift4 storyboard上でデリゲートの移譲先の設定ができるのを知らなかった件

UITableViewを使ってデータをリスト表示する方法を書籍で学習していて

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}

内に
tableView.delegate = self
tableView.dataSource = self
の移譲の設定がないのに正常にデータが表示されるのでなぜか分からなかったのですが

storyboard上で設定していたことを理解していませんでした。
下図のようにTableViewを選択しcontrollを押しながらドラッグしてViewControllerにドロップするとdelegate,dataSourceの選択ができ
tableView.delegate = self
tableView.dataSource = self
と同じ意味の移譲の設定ができる。
上記の場合delegateとdataSourceで2回行う。

2回設定を行うと右側の赤い□で囲われた部分のように関連付けが表示される。
TableViewのインスタンスのdelegateプロパティ、dataSourceプロパティにViewControllerインスタンスを渡すと設定ができる。

なんでdelegateの移譲先の設定をしていないのに表示されるのか不思議だった謎が解決した。
Swiftプログラマーにとっては当たり前なのかもしれませんが
僕は1日に悩んでました(笑)

また忘れないようにメモ。
なかなか学習が進まないですが
Swiftに早く慣れてバリバリアプリ作りたい!
千里の道も一歩から!頑張るぞ!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする