我知道这个问题经常被问到,我已经阅读了很多,但我仍然无法让它发挥作用。假设我有两个班级,FirstClass 和 SecondClass。FirstClass 有一个标签,而 SecondClass 想要获取该标签的文本。这是我所做的:
//FirstClass
@interface FirstClass : UIViewController
{
@public
UILabel *theLabel;
}
@property (strong, nonatomic) UILabel *theLabel;
@implementation FirstClass
@synthesize theLabel;
//SecondClass
#import "MainGameDisplay.h"
@interface SecondClass : UIViewController
{
MainGameDisplay *mainGame;
}
@property (strong, nonatomic) UILabel *theSecondLabel;
@implementation SecondClass
-(void) thisMethodIsCalled {
mainGame = [[FirstClass alloc] init];
self.theSecondLabel.text = mainGame.theLabel.text;
NSLog(@"%@",mainGame.theLabel.text); //Output is '(Null)'
}
theLabel.Text 不为零,因为它每秒都在更改,并且还在加载 SecondClass 视图时在后台运行的另一个控制器上显示标签。如果我完全错了,有人可以指出我的写作方向,或者告诉我一些关于如何做到这一点的例子。谢谢你。
编辑:
@Implementation FirstClass
@synthesize theLabel;
- (void)viewDidLoad {
[self superview];
[self startTickCount];
}
-(void) startTickCount {
timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(timeChanger) userInfo:nil repeats:YES];
}
-(void) timeChanger {
theDay++;
NSLog(@"%@",self.theLabel.text);
if (theDay <= 9)
self.theLabel.text = [NSString stringWithFormat: @"0%i", theDay];
else
self.theLabel.text = [NSString stringWithFormat: @"%i", theDay];
if (theDay > 27)
[self monthChanger];
}
差不多就是这样。NSLog 按预期输出日期。