Это больше вопрос о том, что в целом является хорошей практикой кодирования для iPhone.
У меня есть режим прокрутки с UISegmentedControls, кнопками отправки, UIActionSheets, кнопками масштабирования и закрытия, которые отображаются временно.
Должен ли я просто складывать все вызовы методов (целевое действие для UIControls) (которые на самом деле не являются формальными методами делегата) и масштабировать методы делегата для UIScrollViews в этот единственный контроллер представления? Или было бы лучше создать новый объект [делегат] для обработки их функциональности.
2 ответа
Думаю, лучшее место для всего этого - контроллер представления.
Моя идея состоит в том, что в соответствии с моделью MVC управление действием UIControl или некоторое масштабирование не является ни работой с данными (M), ни отображением (V), поэтому для этого есть только одно место - контроллер (C).
Конечно, если какое-то событие UIControl вызывает управление данными, вы должны (идеологически) сделать это в модели, но методы модели в любом случае должны вызываться из контроллера. Я думаю, что это не лучший способ установить прямое соединение view<->model
.
Это зависит от того, что вам нужно. Идея делегата побуждает людей создавать новый класс, чтобы обрабатывать больше. Но в большинстве случаев удобно реализовать методы делегата в контроллере представления. Например, вы можете захотеть использовать переменные экземпляра в методах делегата.
Похожие вопросы
Новые вопросы
iphone
НЕ ИСПОЛЬЗУЙТЕ этот тег, если вы не обращаетесь конкретно к iPhone и / или iPod touch от Apple. Для вопросов, не зависящих от оборудования, используйте тег [ios]. Больше тегов, которые нужно рассмотреть, это [xcode] (но только если вопрос касается самой IDE), [swift], [target-c] или [cocoa-touch] (но не [cocoa]). Пожалуйста, воздержитесь от вопросов, касающихся iTunes App Store или iTunes Connect. Если вы используете C #, пометьте [mono].