UILabel没有更新它的文本,IOS

时间:2013-01-16 14:45:13

标签: ios uilabel

我遇到了一个简单的任务,我在uiviewcontroller的界面文件上有uilabel。我想通过一些方法更新该标签。它不会更新标签。

enter image description here

.h
UIViewController
{
  UILabel *pictureNameLabel;
}
@property (nonatomic, strong) IBOutlet UILabel *pictureNameLabel;

.m
@synthesize pictureNameLabel=_pictureNameLabel;
- (void)viewDidLoad
{
        _pictureNameLabel = [[UILabel alloc] init];
        _pictureNameLabel.textColor=[UIColor blackColor];
        _pictureNameLabel.text=@"Try";
}

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您无需分配标签。它已经活着,从笔尖中醒来。

.h
UIViewController
{
  //UILabel *pictureNameLabel;
}
@property (nonatomic, strong) IBOutlet UILabel *pictureNameLabel;

.m
@synthesize pictureNameLabel=_pictureNameLabel;
- (void)viewDidLoad
{
        //_pictureNameLabel = [[UILabel alloc] init];
        _pictureNameLabel.textColor=[UIColor blackColor];
        _pictureNameLabel.text=@"Try";
}

答案 1 :(得分:2)

你的直接问题就在于:

_pictureNameLabel = [[UILabel alloc] init];

-ViewDidLoad。它正在创建一个 new 变量,并且pictureNameLabel属性指向它,导致您丢失对Interface Builder中创建的引用的引用。删除该行,一切都应该正常。

如果您通过Interface Builder创建了一个元素,则无需分配&自己初始化,并将其添加到适当位置的视图中,因为它会自动为您完成,并且属性已设置为指向它。如果您手动创建新视图,则需要执行此操作...但您还需要将其作为子视图添加到视图层次结构中的某个位置。

与您的问题无关,但您还创建了一个名为UILabel *pictureNameLabel;的变量。我假设您创建了此变量作为合成属性pictureNameLabel的支持变量...但是,您将其合成为_pictureNameLabel,这意味着您现在有两个变量_pictureNameLabelpictureNameLabel。这几乎肯定是一个错误。您应该删除pictureNameLabel的手动定义,或者如果您确实打算将其与具有相同名称的属性分开使用,则将其重命名为不同的名称。拥有它可能只会导致混乱和在路上瞎扯。

答案 2 :(得分:-1)

您的标签已存在于您的xib文件中,您可以在界面bulider上设置textcolor,text。