Должен ли программный код создавать представления в UIView или UIViewController? - PullRequest
1 голос
/ 05 октября 2011

Я создаю приложение, у которого есть представления, которые создаются программно. То есть я получаю данные из базы данных, которая содержит информацию о таких вещах, как количество, размер и расположение кнопок в представлении. В какой-то момент появится код, который использует эти данные для создания новых подпредставлений и их настройки. У меня вопрос, куда этот код должен идти? Представление, viewController или где-то еще. Мне кажется, что это серая область относительно типичных принципов MVC. Должно ли представление принимать данные, а затем знать, как нарисовать себя, используя эти данные? Или, возможно, viewController отвечает за создание всех различных подпредставлений, а затем просто добавляет их в представление.

Мысли? Спасибо.

1 Ответ

1 голос
/ 05 октября 2011

Я согласен, что это серая зона.Лично я принимаю подобное решение, основываясь на том, нужно ли манипулировать данными или отображением этих данных.Например, контроллер представления отображения даты, возможно, потребуется, чтобы обработать различные даты (то есть, данные представлены в виде DMY структуры по сравнению с датой представлены как значение подсчета секунд от некоторого опорного времени) в формат, подходящий для вида, в то время как видсам по себе может быть способен принимать только один конкретный формат (т. е. DMY) и отвечает за его отображение.Такую черту я обычно рисую между двумя: отображение данных (представление) и интерпретация данных (контроллер).

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

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