以编程方式设置时标签不会更改

时间:2013-11-27 08:58:24

标签: ios objective-c uitableview

我有一个表格视图,其中包含我在主视图控制器中初始化的自定义单元格类和.xib。在自定义单元格类中,我创建了一些链接到某些标签的IBOutlet,并且我还在头文件中定义了一个方法。当我从另一个类调用该方法时,该方法工作被调用并且工作正常直到它达到oldLabel.text = finalString;。标签不会更新。起初我以为可能是我的tableView没有重新加载所以我在调用方法时重新加载它但仍然没有。标签根本没有变化。我还设置了断点,甚至在更改后记录了标签文本,但日志只返回null。这是该方法的代码。

-(void)changInteractBasedOnRow:(NSInteger)integer {
    NSLog(@"Passed");
    int finalInt = integer * 2;
    NSString *finalString = [[NSString alloc] initWithFormat:@"%i", finalInt];
    oldLabel.text = finalString;
}

3 个答案:

答案 0 :(得分:1)

很难用这一小段代码检查你的问题,但我会试着让你朝着正确的方向前进。

您的代码看起来很好,所以:

在oldLabel中登录,是否为零? (不是oldLabel.text,oldLabel)然后检查你的插座是否连接正确,可能没有。

您的方法是正确的,除非您从未提升UI的辅助线程调用,否则它应该在所有内容都正确连接的情况下起作用。

答案 1 :(得分:0)

使用您提供的一小段代码,我可以确定问题在于您声明IBOutlet的方式。

你可以交叉检查&确保您确定oldLabel的所有权。如果它丢失,您可能无法更新标签。

@property (nonatomic, retain) IBOutlet UILabel *oldLabel;

答案 2 :(得分:0)

如果已连接,您必须先正确检查标签的插座,然后尝试以下代码:

oldLabel.text = [NSString stringWithFormat:@"%@", finalString];
相关问题