Есть два способа рассмотреть ваш вопрос. Вы хотите иметь один TableViewController класс (и, возможно, несколько его экземпляров) или один экземпляр экземпляра этого класса?
Я бы сказал, что последняя доставляет больше хлопот, чем стоит. Этот комплект не предназначен для такой работы, поэтому все ярлыки, которые он предоставляет, превращаются в работу, которую вам придется выполнять самостоятельно - и лучшее, что вы получите от этого, - это скромное улучшение использования памяти. (Скорее всего, у вас появятся ошибки, потому что при переконфигурировании одного экземпляра для представления разных данных легко что-то упустить.)
С другой стороны, повторное использование одного класса контроллера представления - это то, что разработано для того, чтобы помочь вам в этом, и, похоже, вы уже используете раскадровки, вы на полпути. В вашей реализации prepareForSegue:sender:
вы всегда будете иметь destinationViewController - так что все, что вам нужно сделать, это настроить его для представления подкатегории (установив его свойство subcategory
, оно выглядит так).
(На самом деле, если вы используете сегменты раскадровки, вы получаете новые экземпляры своего класса, созданные для вас, нравится вам это или нет ... если вы действительно хотите использовать одноэлементный подход, вы придется отказаться от перехода, что означает, что вы потеряете поведение встроенного стека навигации.)