Three20: Как получить доступ к модели в следующем ViewController? - PullRequest
1 голос
/ 20 февраля 2010

Ситуация Я заполняю свой TTTableViewController с помощью TTListDatasource (с TTModel). Мои методы didSelectObject открывают TTViewController.

Вопрос Я хотел бы показать больше информации в TTViewController.

1.Вопрос: Должен ли я передать источник данных (и выполнить новый запрос) или я должен передать определенный VO (со всей информацией)?

2.Вопрос: Как получить доступ к источнику данных в новом TTViewController?

спасибо,

1 Ответ

0 голосов
/ 02 декабря 2010

В вашем TTTableViewController's didSelectRowAtIndexPath: definition используйте ваш TTListDatasource, чтобы получить ссылку на соответствующий объект. Затем передайте его своему TTViewController. Лучше всего это сделать, используя свойство TTViewController, чтобы вам не приходилось беспокоиться о сохранении / освобождении.

@property (nonatomic, retain) TTModel *model;

, а затем в didSelectRowAtIndexPath:

TTModel *model = //get the correct model
TTViewController *vc = [[TTViewController alloc] initHoweverYouWant];
vc.model = mode;

Несколько советов: TTViewController не звучит ужасно наглядно, поскольку вы (правильно) ставите префиксы для ваших классов. Может быть, TTPhotoViewController или что-то может быть более наглядным. Всегда ошибаться на стороне многословия:)

Кроме того, я считаю весьма полезным, чтобы мой подкласс UITableViewController реализовал протокол UITableViewDataSource вместо создания отдельного объекта, если только точно такой же источник данных не будет использоваться в другом месте по той же причине. Это лучше работает с NSFetchedResultsController, если вы также используете данные ядра.

...