2010-02-20 3 views
1

La situation Je remplit mon TTTableViewController avec une TTListDatasource (avec TTModel). Mes méthodes didSelectObject ouvrent un TTViewController.Trois20: Comment accéder au modèle dans le ViewController suivant?

La question Je voudrais montrer plus d'informations dans le TTViewController.

1.Question: Dois-je remettre la source de données (et lancer une nouvelle requête) ou devrais-je remettre une VO spécifique (avec toutes les informations)?

2.Question: Comment accéder aux données dans le nouveau TTViewController?

grâce,

Répondre

0

Dans didSelectRowAtIndexPath de votre TTTableViewController: définition, utilisez votre TTListDatasource pour saisir une référence à l'objet correspondant. Puis passez-le à votre TTViewController. Cela est mieux réalisé en utilisant une propriété du TTViewController afin de ne pas avoir à vous soucier de conserver/libérer.

@property (nonatomic, retain) TTModel *model; 

puis dans le didSelectRowAtIndexPath:

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

Quelques conseils: TTViewController ne semble pas terriblement descriptive, puisque vous (correctement) préfixer vos classes. Peut-être que TTPhotoViewController ou quelque chose peut être plus descriptif. Toujours errer du côté de la verbosité :)

De plus, je trouve qu'il est très utile de faire en sorte que ma sous-classe UITableViewController implémente le protocole UITableViewDataSource au lieu de créer un objet séparé, à moins que la même source de données ne soit utilisée ailleurs pour le exactement la même raison. Cela fonctionne plus bien avec NSFetchedResultsController si vous utilisez également des données de base.

Questions connexes