Создание подкласса UIViewController, когда и когда нет - PullRequest
2 голосов
/ 30 ноября 2008

Я нахожусь в гипотетической ситуации, когда мне нужно перечислить учеников в школе. У меня есть один контроллер табличного представления, который имеет несколько разделов, представляющих школу. В каждой школе есть ученики. Теперь у меня есть требование предоставить пользователю возможность просматривать всех учеников определенной школы, щелкнув название школы в представлении верхнего уровня моего контроллера навигации.

Вопрос здесь заключается в том, должен ли я разветвлять свой текущий «StudentsViewController» и добавлять сложную логику, чтобы он мог отображать учащихся отдельной школы, или вы, эксперты, порекомендовали бы новый класс для обработки этой таблицы?

Компромиссы довольно просты: я действительно могу поместить все в один контроллер представления за счет некоторой запутанной / сложной логики. С другой стороны, будет много повторного кода, если я напишу другой контроллер, который обрабатывает учеников отдельной школы.

Что порекомендуют эксперты на этом?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2008

Я думаю, что самое простое, что нужно сделать, - это иметь один класс, который будет заниматься множеством школ. Если этот массив содержит только один элемент, вы можете (необязательно) не отображать заголовок для одного раздела. В противном случае все разделы имеют заголовки.

Поместите все ваши школы в массив, и когда нужно отобразить одну школу, вставьте ее в массив и вставьте ее в контроллер представления.

Мы делаем очень похожую вещь в одном из наших приложений, в основном так же.

1 голос
/ 30 ноября 2008

Я думаю, это будет зависеть от модели, которую вы используете для хранения ваших данных. Допустим, у вас есть массив массивов, (множество школ, каждая школа содержит множество учеников.)

В этом случае я бы придерживался одного tableController.

Логика не должна быть пугающей, если ваша модель проста, и я думаю, что в этом случае она будет чище и "правильнее", чем несколько подклассов. Не забывайте, что система передает вам NSIndexPath с номерами разделов и строк. ( Школа и Ученик ) indexPath.section и indexPath.row

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...