Переключить UItableView на другой UITableView

Я не уверен, что именно вы должны хранить отдельно, когда у вас есть несколько проектов MVC. Скажем, у меня есть два контроллера табличного представления, первый отображает таблицу, и когда я нажимаю на ячейку, она переходит ко второму контроллеру табличного представления. Информация для таблиц создается с помощью методов в третьем отдельном файле с именем FlickrFetcher. В первом табличном представлении создан экземпляр FlickrFetcher, позволяющий ему вызывать методы. Можно ли будет также импортировать FlickrFetcher во второй контроллер таблицы View, или я должен держать эти контроллеры отдельно и передавать только необходимую информацию через переход?


person Terrel Gibson    schedule 02.08.2012    source источник


Ответы (1)


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

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