UITableViewController って融通が利かなくてあまり好きではありませんでした。高さを変えることはできないし、他の View を上に乗せることもできないし。

なので、基本的には UIViewController に UITableView を乗せる形を取っていました。UITableViewController でしか使えない Static Cells を使えば早い状況でも Dyamic で作ったりしてました。

ところが、

これだ!!

UIViewController の View に UITableView を乗せるのではなくて、Container View を使って UITableViewController を Embed するんですね。そうすると UITableViewController でしか使えない Static Cells が使えて、かつ View のレイアウトが柔軟にできます。

こんな感じですね。左が親の UIViewController で、右が子の UITableViewController です。

auto

ただ、ちょっと面倒なのは、子の UITableViewController のオブジェクトを親の UIViewController から取得する場合、ChildViewControllers からになるということです。子の UITableViewController から値を取得したり、Delegate を設定したりするのが少し手間です。

でも、それを上回る利便性はあると思います。さっそく使いまくってます!