2010-04-15 3 views
1

Я знаю, что я что-то пропустил, но мой друг и я могу понять, что.Проблема с обменом переменных между представлениями - отсутствует что-то?

Во-первых .. У меня есть два .hs и .ms которые я хотел бы, чтобы обмениваться данными между - двумя контроллерами зрения В первых .hi есть это - что делает переменные и свойства них

//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 

Тогда в соответствующем .m - sythesize их

@synthesize messageString, theirTime; 

затем из нового .h и .hi нужно Acces их .. так в видовом сделал нагрузки я это сделать

- (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]; 
} 

и в верхней

#import "MemoryViewController.h" 

и ныне .h, чтобы показать вам все, что переменные

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

Зв Короче - я сделал переменные сделанные свойства и синтезировал их, то в представлении я сделать экземпляр другого VC, а затем попытаться использовать их, чтобы сделать вещи

Выйти поставил

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

Любые идеи, ребята было бы здорово ... если вам нужно больше кода/меньше кода, просто скажите .. ive попробовал другие блоги, но все они делают это с делегатами приложений .. и мне не нравятся глобальные переменные.

Приветствия

Sam

+0

Мне нужно поставить @class где-нибудь? –

ответ

1

Вы инициализируется новый экземпляр MemoryViewController в вашем -viewDidLoad, поэтому, конечно, все его переменные экземпляра являются 0 или nil. Если у вас уже есть MemoryViewController, с которого вам нужно получить свойства, вам нужно ссылаться на этот экземпляр вместо создания нового.

+0

не могли бы вы рассказать об этом? Я не очень понимаю его. У меня есть MemoryViewController.m и .h и я импортирую .h в новый viewcontroller, SubmitPage.m .. Как мне его ссылаться? –

+0

@Sam: передайте его, когда вы инициализируете свой другой объект, настройте IBOutlet, извлеките его из родительского контроллера представления, выбор безграничен :-) – 2010-04-15 10:24:43

+0

В итоге я передал их другим способом .. используя NSUserDefaults. Но спасибо! –