2010-04-15 5 views
1

Je sais que je manque quelque chose mais mon ami et moi pouvons comprendre quoi.Problème avec le partage des variables entre les vues - manque quelque chose?

Tout d'abord .. J'ai deux .hs et .ms que je voudrais partager des données entre - deux contrôleurs de vue Dans les premiers .hi ont ce - qui rend les variables et les propriétés

//top half of .h 


//Passing to Submit Page 
NSMutableString *messageString; 
NSInteger theirTime; 


} 
@property (nonatomic, readwrite) NSInteger theirTime; 
@property (nonatomic, retain, readwrite) NSMutableString *messageString; 
/actions 
@end 

puis, dans la .m respective - sythesize les

@synthesize messageString, theirTime; 

puis de la nouvelle .h et .hi besoin de les acces .. donc Vu la charge a fait ce que je fais

- (void)viewDidLoad { 

messageString = [[NSMutableString alloc] init]; 

MemoryViewController *controller = [[MemoryViewController alloc] init]; 

timeInSeconds = controller.theirTime; 

NSLog(@"Time = %d", timeInSeconds); 
messageString = controller.messageString; 
NSLog(@"Message - %@", messageString); 
[controller release]; 

NSUserDefaults *HighScore = [NSUserDefaults standardUserDefaults]; 

bestTime.text= [NSString stringWithFormat:@"Best Time:%d", [HighScore integerForKey:@"integerKey"]]; 

currentTime.text = [NSString stringWithFormat:@"Current Time:%d", timeInSeconds]; 

[super viewDidLoad]; 
} 

et au sommet

#import "MemoryViewController.h" 

et maintenant le .h pour vous montrer ce que toutes les variables sont

IBOutlet UILabel *bestTime; 
IBOutlet UILabel *currentTime; 
int timeInSeconds; 
NSMutableString *messageString; 

So. En bref - j'ai fait des variables en propriétés et les synthétiser, puis dans la vue je fais une instance de l'autre VC, essayez de les utiliser pour faire des choses

Déconnexion mis

2010-04-15 20:53:09.105 Memory[3538:207] Time = 0 
2010-04-15 20:53:09.107 Memory[3538:207] Message - (null) 

Toutes les idées gars serait génial ... si vous avez besoin de plus de code/code, dites simplement .. ive essayé d'autres blogs, mais ils le font tous avec les délégués de l'application .. et je n'aime pas les variables globales.

Vive

Sam

+0

dois-je mettre @class quelque part? –

Répondre

1

Vous initialisés une nouvelle instance MemoryViewController dans votre -viewDidLoad, donc bien sûr toutes ses variables d'instance sont 0 ou nil. Si vous avez déjà un MemoryViewController dont vous avez besoin pour obtenir les propriétés, vous devez référencer cette instance au lieu d'en créer une nouvelle.

+0

pouvez-vous élaborer sur cela? Je ne comprends pas vraiment. J'ai un MemoryViewController.m et .h et j'importe le .h dans le nouveau viewcontroller, SubmitPage.m .. comment le référencer? –

+0

@Sam: transmettez-le lorsque vous initialisez votre autre objet, configurez un IBOutlet, récupérez-le depuis un contrôleur parent, les choix sont illimités :-) –

+0

J'ai fini par les passer différemment .. en utilisant NSUserDefaults. Mais merci! –

Questions connexes