Я вижу здесь две странные вещи:
[1] возвращено 0 секций; Вы должны определить хотя бы 1 раздел для работы
[2] вы используете другую таблицу поверх свойства tableView, определенного классом UITableViewController. Вы должны проверить, не противоречат ли эти две таблицы каким-либо образом (искренне я никогда не пытался поместить другую таблицу поверх «стандартной» таблицы контроллера).
Просто сделайте эту дополнительную проверку, отличную от решения в [1].
Это снимок из документов Apple в качестве ссылки:
Если файл пера указан с помощью initWithNibName: bundle: метод (который объявлен суперклассом UIViewController), UITableViewController загружает табличное представление, заархивированное в файле пера. В противном случае он создает ненастроенный объект UITableView с правильными размерами и маской авторазмера. Вы можете получить доступ к этому представлению через свойство tableView.
Если загружен файл пера, содержащий табличное представление, источник данных и делегат становятся теми объектами, которые определены в файле пера (если есть). Если файл пера не указан или если в файле пера не указан источник данных или делегат, UITableViewController устанавливает для источника данных и делегата табличного представления значение self.
Когда табличное представление собирается появиться в первый раз, когда оно загружено, контроллер табличного представления перезагружает данные табличного представления. Он также очищает свой выбор (с анимацией или без нее, в зависимости от запроса) каждый раз, когда отображается представление таблицы. Класс UITableViewController реализует это в методе суперкласса viewWillAppear :. Вы можете отключить это поведение, изменив значение в свойстве clearsSelectionOnViewWillAppear.
Когда табличное представление появилось, контроллер мигает индикаторами прокрутки табличного представления. Класс UITableViewController реализует это в методе суперкласса viewDidAppear :.
Он реализует метод суперкласса setEditing: animated: так, что если пользователь нажимает кнопку Edit | Done на панели навигации, контроллер переключает режим редактирования таблицы.
Вы создаете пользовательский подкласс UITableViewController для каждого табличного представления, которым хотите управлять. Когда вы инициализируете контроллер в initWithStyle:, вы должны указать стиль табличного представления (простой или сгруппированный), которым должен управлять контроллер. Поскольку изначально созданное табличное представление не имеет измерений таблицы (то есть количества разделов и количества строк в разделе) или содержимого, источник данных и делегат табличного представления, то есть сам объект UITableViewController, должен обеспечивать измерения таблицы, содержимое ячейки и любые желаемые конфигурации (как обычно). Вы можете переопределить loadView или любой другой метод суперкласса, но если вы обязательно вызовете реализацию метода суперкласса, обычно в качестве первого вызова метода.