2009-07-21 6 views
1

Je vais directement partir d'un ex: J'ai deux classes A et B, toutes deux dérivées de UITableViewController.Méthode reloadData non appelée d'une autre classe

Je les ai également ajoutés dans le contrôleur de navigation afin que la navigation passe de A à B. Ces deux classes utilisent la base de données pour afficher les données dans la table. Maintenant, dans la vue B, je supprime une ligne du DB et une vue affiche le nombre de lignes de cette table DB. Maintenant, ce que je fais est sur le bouton BACK de la navigation Je veux J'appelle cette méthode ESSAYEZ 1:

//in class B 
-(IBAction)backBtnPressed 
{ 
[ObjA.tbleView reloadData]; 
[self.navigationController popViewControllerAnitmated:YES]; 
} 

sur son action. Le problème est que cette méthode ne recharge pas les données de View A. c'est-à-dire qu'elle n'appelle pas les méthodes déléguées de tbleView comme cellForIndexPath ... etc. Alors je pensais que peut le reloadData shud être appelé de la même classe donc fait ce 2 TRY:

//in class B 
-(IBAction)backBtnPressed 
{ 
[ObjA.tbleView myReloadData]; 
[self.navigationController popViewControllerAnitmated:YES]; 
} 
//Class A 
-(void)myReloadData 
{ 
[self.tbleView reloadData]; 
} 

Il est dans cette méthode, mais ne fonctionne toujours pas appeler les méthodes déléguées tableView. S'il vous plaît laissez-moi savoir pourquoi je ne suis pas capable de faire cette chose stupide :(. Cordialement .. Amit

Répondre

1

Avez-vous connecté delegate et dataSource points correctement de la UITableView (soit dans votre plume ou en utilisant le code, selon comment vous créez la table)

+0

Oui, je l'ai connecté le contrôle TableView avec le propriétaire du fichier sur le fichier XIB connecté également à travers le code en utilisant ces derniers. ligne de code: - (vide) viewDidLoad { self.title = NSLocalizedString (@ "Ma liste de travail", @ "Titre WorkListViewController"); self.tblObj.delegate = self; self.tblObj.dataSource = self; self.tblObj.rowHeight = 65; self.tblObj.separatorStyle = UITableViewCellSeparatorStyleSingleLine; self.tblObj.sectionHeaderHeight = 0; } – AmJa

0

vous êtes proche, mettre cela en classe A:

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self.tableView reloadData]; 
} 
+0

Merci mais déjà essayé de le faire mais ma méthode viewWillAppear n'est pas appelée. J'ai beaucoup essayé mais je ne sais pas pourquoi cette méthode n'est pas appelée automatiquement: o (. – AmJa

Questions connexes