Вопрос о дизайне иерархии Views в iOS - PullRequest
0 голосов
/ 06 мая 2011

Если у меня есть иерархия видов для отображения в моем окне (скажем, сетка, и каждая ячейка сетки представляет собой UIView с изображением + заголовок), как мне реализовать ее, не нарушая шаблон проектирования MVC?

Должен ли я создать MVC для каждой ячейки, а затем, как я могу добавить их в основной MCV и связать его с основным видом?

Или мне просто создать представление ячейки и добавить его в главное представление с помощью метода addSubView?

Спасибо

пс. Я нашел этот пример, это правильно? Нужно ли создавать контроллер, а затем добавить его представление в mainView и освободить контроллер?

SimpleViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[mainView addSubview:viewController.view];
[viewController release];

1 Ответ

1 голос
/ 06 мая 2011

http://developer.apple.com/library/ios/#documentation/general/conceptual/DevPedia-CocoaCore/MVC.html

Объекты модели инкапсулируют данные, специфичные для приложения, и определяют логику и вычисления, которые манипулируют и обрабатывают эти данные ...

Объект представления - это объект в приложении, который пользователи могут видеть ...

Объект контроллера действует как посредник между одним или несколькими объектами представления приложения и одним или несколькими объектами его модели. Контроллерные объекты, таким образом, представляют собой канал, через который объекты представления узнают об изменениях в модельных объектах и ​​наоборот. Объекты контроллера также могут выполнять задачи по настройке и координации приложения и управлять жизненными циклами других объектов ...

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

Даже если эти представления построены на основе некоторых моделей, нет необходимости обязательно присваивать каждому свой собственный объект контроллера. Вместо этого у вас может быть представление сетки с делегатом источника данных, который он может запросить для отображения ячеек, очень похоже на UITableView.

Что представляют собой ваши ячейки сетки? Имеет ли смысл иметь объект модели, фиксирующий независимое от представления поведение и состояние для этих данных?


пс. Я нашел этот пример, это правильно? Нужно ли создавать контроллер, а затем добавить его представление в mainView и освободить контроллер?

Не делайте этого, это неправильное использование UIViewController и может привести к путанице. Если вам просто нужен объект просмотра, просто создайте объект просмотра. Вы можете загружать объекты из пера, не создавая дополнительный объект контроллера, как это. Посмотрите на NSBundle или UINib для альтернативных способов загрузки объектов из файлов пера.

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