2013-03-19 6 views
1

Je veux recharger les données de UITableview à partir d'un autre UIView.recharger les données uitableview à partir d'une autre vue

(le UITableview est en ListNoteViewController)

l'appel que je fais de DetailViewController (l'autre UIView) est:

ListNoteViewController *controller = [[ListNoteViewController alloc] initWithNibName:@"ListNoteViewController" bundle:[NSBundle mainBundle]]; 

[controller.TableNotes reloadData]; 

, mais rien ne se passe. S'il vous plaît, quelqu'un peut m'aider?

grâce avancée

+1

Vous pouvez utiliser délégué personnalisé pour atteindre ce – Vinodh

+0

Voir ma réponse.Heur le concept est clair à partir de lui et n'hésitez pas à demander si vous avez plus de doutes –

Répondre

3

Rien ne se passera, parce que vous essayez de recharger un tableview qui est pas encore créé! Les éléments de l'interface utilisateur tels que UITableView, UILabel etc. ne seront créés qu'après l'affichage de l'UIViewController particulier. Ici, vous venez d'initialiser le viewcontroller uniquement.

Vous devriez écrire ceci dans

 -(void)viewDidAppear:(BOOL)animated 
    { 
     [self.TableNotes reloadData]; 
    } 

OU

-(void)viewWillAppear:(BOOL)animated 
    { 
     [self.TableNotes reloadData]; 
    } 

de votre ListNoteViewController.

Ceci est le problème avec votre code. Et dans le cas, si le ListNoteViewController est déjà en pile, c'est-à-dire, si vous avez déjà chargé le même viewcontroller et que vous essayez de recharger la tableview, vous pouvez utiliser délégués personnalisés pour obtenir la même chose.

vous pouvez voir how to add a delegate ici.

3

Vous pouvez utiliser des délégués.

dans DetailViewController.h

@property (nonatomic, strong) id Delegate; 

Dans ListNoteViewController.m

-(void)myTVReloadMethod { 
[myTable reloadData]; 
} 

Et quand vous allez DetailViewController

DetailViewController *dvc = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]]; 
dvc.Delegate = self; 
[self.navigationController pushViewController:dvc animated: yes]; 

Dans toute méthode DetailViewController

[delegate performSelector:@selector(myTVReloadMethod) withObject:nil]; 
+0

Salut. J'utilise MFSideMenu. Je ne suis pas en mesure de transmettre des données à menuViewController. Cela contient la liste dans tableview, car menuviewcontroller déjà chargé et tableview appelé avant les détails de connexion. –

Questions connexes