Я не уверен, что именно вы должны хранить отдельно, когда у вас есть несколько проектов MVC. Скажем, у меня есть два контроллера табличного представления, первый отображает таблицу, и когда я нажимаю на ячейку, она переходит ко второму контроллеру табличного представления. Информация для таблиц создается с помощью методов в третьем отдельном файле с именем FlickrFetcher. В первом табличном представлении создан экземпляр FlickrFetcher, позволяющий ему вызывать методы. Можно ли будет также импортировать FlickrFetcher во второй контроллер таблицы View, или я должен держать эти контроллеры отдельно и передавать только необходимую информацию через переход?
Переключить UItableView на другой UITableView
Ответы (1)
С точки зрения того, что разрешено языком, вы, безусловно, можете иметь экземпляр класса FlickrFetcher во втором контроллере табличного представления или, когда вы переходите, вы можете передать ссылку на тот же экземпляр класса из вашего первого контроллера представления в ваш. второй. В противном случае, возможно, было бы лучше передать только конкретную информацию, необходимую для второго контроллера представления, из FlickrFetcher через переход (это зависит от того, сколько вам нужно во втором контроллере представления). Это в основном зависит от вас, но переход через переход может быть более эффективным и иметь больше смысла семантически. Надеюсь, что это ответ на ваш вопрос
person
Ariel
schedule
02.08.2012
Я думал, что вы должны держать контроллеры отдельно, не будет ли создание экземпляра путем импорта противоречить шаблону проектирования MVC?
- person Terrel Gibson; 03.08.2012
Я почти уверен, что было бы лучше просто передать конкретную информацию, необходимую для вашего второго контроллера представления, через переход, если вы хотите строго следовать MVC. Просто к вашему сведению, если вы скопируете ссылку на объект FlickrFetcher в переходе (скажем, если у второго контроллера представления есть свойство flickrFetcher), вы не создадите новый экземпляр, если свойство flickrFetcher второго контроллера представления будет сильный указатель.
- person Ariel; 03.08.2012
Я предполагаю, что вы имеете в виду протокол в классе FlickrFetcher, так что ваш второй контроллер представления имеет указатель на идентификатор, который соответствует этому протоколу, и в этом случае, я думаю, это сработает, таким образом вы сделаете только необходимые вещи доступными для контроллер второго вида.
- person Ariel; 03.08.2012
Как насчет создания протокола в первом контроллере TableView с экземпляром flickrFetcher? или лучше сделать это прямо в классе FlickrFetcher?
- person Terrel Gibson; 03.08.2012
ИМХО протокол должен быть в том же файле, что и класс FlickrFetcher (вероятно, файл интерфейса)
- person Ariel; 04.08.2012