在视图之间共享变量的问题 - 缺少某些东西?

时间:2010-04-15 09:24:56

标签: iphone shared-objects modalviewcontroller

我知道我错过了一些东西,但我和我的朋友可以弄清楚是什么。

首先..我有两个.hs和.ms,我想在两个视图控制器之间共享数据 在第一个.h我有这个 - 这使变量和属性成为它们

 //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和.h我需要访问它们..所以在视图中加载我这样做

- (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)

任何想法的人都会很棒...如果你需要更多的代码/更少的代码只是说..我尝试过其他博客但他们都是用app代表做的..而且我不喜欢全局变量。

干杯

萨姆

1 个答案:

答案 0 :(得分:1)

您在MemoryViewController中初始化了一个新的-viewDidLoad实例,因此其所有实例变量当然都是0nil。如果您已经需要从MemoryViewController获取属性,则需要引用该实例而不是创建新实例。