Извините, если название звучит запутанно, но я не смог придумать ничего лучшего.
По сути, у меня есть контроллер представления, который управляет представлением прокрутки страниц, которое отображает несколько изображений, извлеченных из базы данных.Я новичок в MVC, и я попытался написать свой код, следуя этому шаблону, как мог (мой опыт основан на взгляде на код других людей и на понимание того, как работают классы Apple, поэтому он может быть ошибочным;Я был бы признателен, если бы вы могли сказать мне, если это так).
Вот что я сделал: у меня есть собственный класс представления, который содержит UIScrollView
и имеет два открытых свойства: dataSource
и delegate
.Объект источника данных должен соответствовать протоколу, который я определил;возвращает количество изображений и сами изображения.Делегат получает уведомление при изменении выбранной страницы.
Надеюсь, я понял все правильно.В любом случае это работает;Я могу повторно реализовать источник данных без каких-либо проблем (если мне нужно), и код, который предоставляет данные, отделен от кода, который их отображает.
Но теперь у меня возникла проблема: мне нужно иметь возможность заменить представление прокрутки подкачки на представление типа CoverFlow, дублирующее как можно меньше кода.Я знаю, что должен быть лучший способ сделать это, не создавая другой класс контроллера представления, используя это представление CoverFlow.Два класса представления имеют сходные методы и работают схожим образом, поэтому имеет смысл использовать один и тот же код контроллера представления, а не дублировать его.
Возможно, я мог бы написать абстрактный класс с универсальными методами и написать две его реализации, одну для представления прокрутки и одну для представления CoverFlow, а затем создать экземпляр одного из двух в контроллере на основе параметраперешел на это.Это лучший способ добиться этого?
Надеюсь, это не слишком запутанно, и мой подход не слишком ошибочен.Спасибо.