Это две разные вещи, их нельзя заменить другой.
iOS следует шаблону проектирования MVC, который обозначает Model-View-Controller.Два упомянутых вами класса - это две части общей головоломки.
Вид - это то, что отображается на экране.Это его ответственность.Таким образом, TableView отвечает за сообщение телефону о том, что отображать на экране.
Вид также сопровождается контроллером.Контроллер решает, что делать, когда что-то происходит (взаимодействие с пользователем и другие события, которые могут произойти в любое время).Таким образом, TableViewController отвечает за то, чтобы таблица выполняла какие-либо функции (например, сообщала TableView, какие данные использовать для отображения на экране).
Итак, подведя итог, они совершенно разные, но работаюточень близко друг к другу в вашем приложении (у вас почти всегда будет 1 контроллер для каждого вида.