Это зависит от того, какие данные у вас есть в каждой из ваших категорий. Если формат данных в каждой категории различен, и вы уже знаете это, спроектируйте viewControllers так, чтобы они непосредственно считывали данные и отображали их по мере необходимости. ViewController должен сам обрабатывать логику отображения.
С другой стороны, если все категории относятся к одному типу, вы можете создать несколько экземпляров одного и того же viewController, использовать их и при необходимости освобождать.
В вашем случае, похоже, что второй вариант может быть предпочтительным.
Редактировать: было бы разумно использовать разные подклассы viewControllers, помня шаблон проектирования - «Закрыто для модификации и открыто для расширения».