Что такое метод Three20 для передачи объектов между контроллерами представления? - PullRequest
0 голосов
/ 04 мая 2011

У меня есть базовый RSS Reader, который я сделал из трех20 учебных пособий, используя TTLauncherView в качестве меню для различных каналов и TTTableViewController для отображения списка каналов.

Однако я застрял в той точке, где из списка каналов янажмите, чтобы просмотреть детали элемента фида.Я использую TTTableImageItem для отображения элементов фида, и я не знаю, как мне использовать переменную URL в указанном TTTableImageItem для передачи объектов в контроллер представления, показывающий элемент фида.

Я провел некоторый поиск и яЯ склонен думать, что это не может быть сделано, кроме как через TTURLRequest, что еще больше запутывает меня.

Большая часть моего кода адаптирована из учебника IOSGuys , в котором используется пользовательский источник данных, данныемодель и парсер.Я пытался сделать источник данных и модель данных одноэлементным, но безрезультатно, и я не уверен, что это даже лучший способ перейти к чему-то столь же (предположительно) простому, как это.

В идеале я собираюсь пройтивесь массив элементов канала с другим аргументом для индекса, чтобы я мог использовать UIPageControl для пролистывания между каналами, когда я нахожусь в более углубленном представлении.

Очень важна помощь!Я слишком долго трачусь вокруг!

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

Обычный способ сделать это - создать какой-то глобальный синглтонный класс Data Manager, который управляет моделями данных через Core Data, In-Memory Store или другими способами. Каждая модель будет иметь своего рода уникальный идентификатор. Делая это таким образом, вы получаете стек только для URL, необходимый для восстановления истории навигации без необходимости записывать состояние в файл для восстановления. Вы также можете открыть любую страницу приложения в любом месте, используя только один URL. Использование схемы URL только тогда становится тривиальным, так как вы можете сделать что-то вроде:

yourapp://blogs/jd82kd9

и у метода init контроллера просмотра блога свяжитесь с Data Manager для блога с уникальным идентификатором jd82kd9

В отображениях вашего навигатора у вас будет что-то вроде этого:

[map from:@"yourapp://blogs/(initWithBlogID:)") toViewController:[MyBlogViewController class]];

и тогда метод initWithBlogID будет иметь подпись:

- (id)initWithBlogID:(NSString *)blogID;
1 голос
/ 04 мая 2011
...