Помните, что возвращаемое вами представление не сохраняется UITableView (OS 3.1.2 по крайней мере, похоже, отображает эту проблему). Это приводит к трудно обнаруживаемым сбоям, возникающим до того, как выполнение попадет в viewDidLoad.
Представление таблицы не захватывает ваши представления по требованию, как вы думаете. Он запрашивает их все, затем запрашивает их все снова, а иногда и еще несколько раз, поэтому генерация их при каждом запросе очень неэффективна.