Это больше вопрос о том, что в целом является хорошей практикой кодирования для iPhone.

У меня есть режим прокрутки с UISegmentedControls, кнопками отправки, UIActionSheets, кнопками масштабирования и закрытия, которые отображаются временно.

Должен ли я просто складывать все вызовы методов (целевое действие для UIControls) (которые на самом деле не являются формальными методами делегата) и масштабировать методы делегата для UIScrollViews в этот единственный контроллер представления? Или было бы лучше создать новый объект [делегат] для обработки их функциональности.

1
Roy 30 Авг 2011 в 07:45

2 ответа

Лучший ответ

Думаю, лучшее место для всего этого - контроллер представления.

Моя идея состоит в том, что в соответствии с моделью MVC управление действием UIControl или некоторое масштабирование не является ни работой с данными (M), ни отображением (V), поэтому для этого есть только одно место - контроллер (C).

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

1
kpower 30 Авг 2011 в 04:12

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

0
Carusd Ray 30 Авг 2011 в 07:16