J'ai un ViewControllerA et un ViewControllerB. Je veux appeler une méthode de ViewControllerA de ViewControllerB.
Dans ViewControllerA est présente une méthode:
-(NSMutableArray*) loadData;
Dans ViewControllerB.h:
#import "ViewControllerA.h" ....... @property (nonatomic, strong) ViewControllerA * viewControllerA; @property (nonatomic, strong) NSMutableArray * mutableArray;
Dans ViewControllerB.m:
self.mutableArray =[viewControllerA loadData];
mais la méthode n'appelle pas. Pourquoi? Merci d'avance
Tu es absent
self.
Tant que quelque part dans viewControllerB:
self.viewControllerA = [[viewControllerA alloc]init]; //or some other initialization occurs...
puis:
self.mutableArray =[self.viewControllerA loadData];
marchera.
Assurez-vous que la méthode loadData est spécifiée dans le file d'en-tête viewControllerB.
- (void)loadData;
Après que, vous pouvez maintenant appeler la méthode loadData.
[viewControllerA loadData];
viewControllerA est alloué dans ViewControllerB avant d'appeler [viewControllerA loadData]?
Tout en poussant le controller B du controller A …
viewControllerB.viewControllerA = self; [self.navigationController pushViewController:viewControllerB animated:YES];
et puis de B appelez la méthode A. Le problème que vous avez rencontré est dû à la non allocation et à la déclaration de "viewControllerA" que vous avez créé dans B.