2015-05-26 3 views
0

У меня довольно сложная настройка, и я ищу совет, как структурировать свой код. То, что я пытаюсь сделать, это нечто похожее на твиттер, когда вы нажимаете одно из изображений пользователей и можете пронести через них. Это то, что я имею на данный момент:Как структурировать мой код iOS?

  • UIViewController подкласс, который собирает данные с сервера, и передает его в UITableViewController подклассу через переменную с именем theData
  • Этот UITableViewController подкласс также собирает больше данных как пользователей прокручивается в нижней части таблицы и добавляет его в theData (т. е. использует разбивку на страницы). Этот подкласс UITableViewController повторно используется во всем приложении, так что данные от другого источника могут быть переданы ему.
  • Когда пользователь нажимает на UITableViewCell, создается UIWindow, в котором есть UIPageViewController. Окно использует UITableViewController в качестве делегата для доступа theData и передает theData от делегата UIPageViewController в переменной с именем pageData
  • Каждая страница UIPageViewController является UIViewController, который загружает изображения из pageData

Следующий этап - сделать разбивку на страницы, когда пользователь проведет до конца pageData в UIPageViewController. Однако я не думаю, что мой код достаточно структурирован, чтобы повторно использовать код разбивки на страницы из UITableViewController. Пожалуйста, может кто-нибудь дать мне совет о том, как улучшить эту структуру кода?

Спасибо

EDIT

UIViewController в первом пункте делает больше, чем просто загрузка данных (он имеет другие представления в нем).

Я использую UIWindow инкапсулировать UIPageViewController, потому что я хочу, чтобы расширить из рамы UITableViewCell и «взять на себя» полный экран - покрытие в строке состояния.

+0

Вам не нужно создавать 'UIWindow', его уже есть, вы просто создаете новый' UIViewController' или его подкласс и представляете его/нажимаете на стек навигации. Я не думаю, что мы можем много помочь, так как у нас нет представления о том, насколько ваш код «не структурирован» для представления решения – Erakk

+0

Это может быть более применимо для программистов или обзора кода. –

+0

Существует много простое решение. Перейдите в github (или другой подобный сайт) и найдите одну из многих существующих библиотек, которые вы можете использовать для просмотра фотографий. – rmaddy

ответ

0

Моим советом было бы создать простой сервис, который вы можете использовать для связи с сервером. Для этого вам не нужен View controller.

Кроме того, вы можете создавать статические методы, которые дадут вам theData, не передавая его по всему приложению.

Что касается прокрутки, вы можете взять 3 пользователя в массиве и выполнить прокрутку, загрузить дополнительный и освободить ненужный. Это поможет вам с использованием памяти (если пользователи проведут 50 или более пользователей).

+0

Привет, Ник, спасибо за ваш ответ! Я обновил свой ответ, чтобы дать дополнительную информацию об использовании 'UIViewController' /' UIwindow'. Когда вы говорите услугу, будет ли это отдельная функция класса/общего пользования, которая взаимодействует с сервером? – Tometoyou

+0

Для uiwindow - вам все равно это не нужно. У вас будет другой контроллер представления для отображения данных, и вы можете выбрать, чтобы скрыть все, что захотите. Вы хотите быть внутри клетки. Для службы - да, вы можете создать простой NSObject, который позаботится о связи с сервером, таким образом у вас будет отдельная логика для извлечения данных, и вы можете использовать ее везде, где хотите, без копирования кода. – Miknash

+0

Хорошо спасибо. Не могли бы вы объяснить немного больше/связать меня со статьей о том, как статические методы могут получить доступ к 'TheData'? Если 'theData' хранится в экземпляре класса, как бы статический метод мог это получить? – Tometoyou

Смежные вопросы