Хорошо, мне придется ответить на мой собственный вопрос. Я думал об удалении, но, возможно, это могло бы помочь кому-то еще. Я действительно выдернул свои волосы на этом. Это было не из-за чего-то, что я делал неправильно, а из-за фундаментального недопонимания того, как работает разработка iPhone.
В двух словах, проблема была в этой строке кода, которая создала экземпляр TableViewController:
self.downloadDetailViewController = [[DownloadDetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
Когда вы используете XCode для создания нового класса, вы можете использовать следующее:
"Добавить -> Новый файл -> Сенсорный класс Cocoa -> Подкласс UIViewController -> UITableViewController
подкласс И С XIB для пользовательского интерфейса "
Проблема в том, что NIB не имеет абсолютно никакого отношения к UITableViewController, пока вы не скажете своему коду использовать его. Мне кажется, что это ошибка в XCode или, по крайней мере, что-то нелогичное. Когда среда разработки создает все три файла вместе, имело бы смысл только работать вместе, но это не так.
Вместо этого решение состоит в том, чтобы изменить строку кода следующим образом:
self.downloadDetailViewController = [[DownloadDetailTableViewController alloc] initWithNibName:@"SecondaryView" bundle:[NSBundle mainBundle]];
Надеюсь, это может помочь кому-то еще ...