Ключ здесь
for (UIView *subView in self.view.subviews)
каждое подпредставление имеет класс UIView и ваш тест
isKindOfClass:[TableViewController class]
тестирует класс TableViewController
Я бы предложил способ сделать это, пометив представления, которые вы добавляете динамически, скажем, 99 - и затем в вашем цикле вы можете идентифицировать эти представления по их тегу.
например.
for (UIView *subView in self.view.subviews)
{
if (subView.tag == 99)
{
[subView removeFromSuperview];
}
}