我这里有一个类,它将String值传递给另一个具有UILabel的类并将其显示给它。但是我无法将其显示在另一个类的标签上。我是用两种方式做到的。
1)我的第一种方式,直接从另一个类调用标签 在我的第一堂课上,关于方法
static void on_status_state(NSString *) stats
{
DisplayViewController* display = [[DisplayViewController alloc] init];
display.statusLabel.text = @"Sample Display";
}
在包含UILabel的类上。 在DisplayConn.h上
@property (retain, nonatomic) IBOutlet UILabel *statusLabel;
2)我的第二种方法,调用方法并将值传递给参数 在我的第一堂课上,关于方法
static void on_status_state(NSString *) stats
{
DisplayViewController* display = [[DisplayViewController alloc] autorelease];
[display toReceiveStatus:@"Sample Label"];
}
在包含UILabel的类上。 在DisplayConn.h上
@property (retain, nonatomic) IBOutlet UILabel *statusLabel;
然后在DisplayConn.m
上- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)toReceiveStatus:(NSString *) stats
{
self.statusLabel.text = stats;
NSLog(@"DISPLAY %@",stats);
}
第二种方式似乎有效,因为显示包含该值的日志,但该值仍未显示在标签上('statusLabel')。用于标记运行时不时变化的显示。 应该是什么原因?
答案 0 :(得分:1)
答案 1 :(得分:0)
您应该初始化DisplayViewController
类的对象,
static void on_status_state(NSString *) stats
{
DisplayViewController* display = [[[DisplayViewController alloc] init] autorelease];
[display toReceiveStatus:@"Sample Label"];
}
您应该检查是否已调用- (void)toReceiveStatus:
。在DisplayConn.h中将statusLabel声明为UILabel *statusLabel;
尝试这样我觉得它会对你有所帮助。
- (void)viewDidLoad
{
statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 30, 20)];
statusLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:14];
statusLabel.font = [UIFont systemFontOfSize:15.0];
[self.view addSubview:statusLabel];
}