Обычно я использую несколько контроллеров представления, когда я отображаю представления таблицы. Я использую подкласс UIViewController для управления целым представлением и любыми панелями или кнопками (все, что не связано с представлением таблицы). Затем я создаю UITableViewController для управления только таблицей.
Это имеет несколько эффектов:
Во-первых, это позволяет мне лучше инкапсулировать поведение. UITableViewController намного чище и портативнее.
Во-вторых, вы получаете настоящий UIView для решения таких проблем, как ваша проблема. Похоже, больше работы, но позволяет большую настройку. Вы можете делать все что угодно для фона.
В-третьих, это позволяет мне намного проще использовать XIB для основного вида, не беспокоясь о содержимом UITableView (которое может загружаться по сети или нет, или иметь другие проблемы с загрузкой).
Так что мое предложение будет вашим первым решением. Но вы должны делать это постоянно, а не только тогда, когда вы думаете, что вам потребуется дополнительная гибкость. Таким образом, он уже на месте.