Иерархия, если у тебя коллекция на ячейках таблицы, то это плохая практика, но все же создаешь кастомный класс view, в нем создаешь tableView, реализуешь протоколы в контроллере, и в методе конфигурации ячейки кастишь ее до кастомного класса, аля customTableViewCell, а уже в данном классе создаешь коллекцию, снова подписываешь свой контроллер под collectionViewDelegate и dataSource, и по аналогии с ячейкой ставишь себя делегатом в методе viewDidLoad, и все, так же как и ячейку, похожим методом создаёшь item, и кастишь до класса айтема коллекции, и в нем производишь настройку, повторюсь, это оч плохая практика