Cette question est en relation avec UITableView issue when using separate delegate/dataSource, même si j'ai un problème différent. Je commence juste à apprendre la programmation iPhone.Programmation d'Iphone: Plusieurs UITableViews lisant de la même source?
Fondamentalement, j'ai une vue principale avec une table. Sur l'événement d'un clic de cellule, une sous-vue avec une autre table est affichée. La source de données et le délégué pour la table de la vue principale sont définis comme propriétaires des fichiers, et j'ai ajouté le code nécessaire pour gérer les données de la table et tout va bien. Mais, lorsque la deuxième table de la sous-vue semble planter l'application, j'ai fait la même chose, définir la source de données et déléguer au propriétaire du fichier et répéter la même procédure que pour la table de la vue principale. Je n'ai aucune idée de pourquoi cela se passe.
La sous-vue possède son seul fichier nib/xib et sa propre sortie. Si je n'attache aucune source de données à la table de la sous-vue, elle prend les données de la table de la vue principale; Je ne comprends pas pourquoi, puisque j'ai défini la source de données comme étant le propriétaire du fichier.
Par exemple: le contrôleur FirstView
possède une table FirstTable
, la source de données et le délégué sont définis sur le propriétaire de Files
. J'ai ajouté ce qui suit dans FirstView.m
:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 4;
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"LibraryListingCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text [email protected]"Table Cell";
return cell;
}
Tout fonctionne parfaitement. Au moment où je le répète avec une deuxième table et une seconde vue, l'application se bloque en disant
reason: '-[UISectionRowData tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x69188d0'
Je l'ai fait exactement la même chose pour la deuxième table: mise en œuvre numberOfRowsInSection
et cellForRowAtIndexPatch
à l'intérieur secondview.m
et définir le délégué et source de données de la deuxième table au propriétaire du fichier. Si je supprime le délégué et la source de données pour la deuxième table, l'application ne se bloque pas mais a une table vide dans la deuxième vue.
Des suggestions? ou est-ce que je manque un concept clé ici?
Utilisez-vous des contrôleurs de vues séparés pour la vue principale et la sous-vue? – iphony