文字未在uiview上显示

时间:2012-11-16 13:48:41

标签: iphone objective-c cocoa

我在viewController中定义了一个标签,我还设置了它@property并合成它。我在viewDidLoad中建立了文件所有者和UIlabel之间的链接。我正在尝试显示此字符串链接:

- (void)viewDidLoad {
    getname = [[UILabel alloc] init];
    getname.text = @"hello";
    [super viewDidLoad];
}

但是字符串没有显示在UIView的标签上。请告诉我在UIView上显示字符串需要做什么。视图控制器和nib文件具有相同的名称。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    }
    return self;
}

但是当我添加viewcontroller.m文件想要在视图上显示某些内容时,它不响应该代码。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

如果您使用的是故事板......

听起来您正在使用故事板,在这种情况下您应该删除init,因为故事板会为您处理:

- (void)viewDidLoad
{
    getname.text = @"hello";
    [super viewDidLoad];
}

通过将init与故事板一起使用,您将重新声明该对象,因此故事板无法找到它。

如果你使用故事板......

如果您没有使用故事板,则需要将标签添加到视图中:

- (void)viewDidLoad
{
    getname = [[UILabel alloc] init];
    getname.text = @"hello";
    [self.view addSubview:getname];
    [super viewDidLoad];

}

[self.view addSubview:getname];行将UILabel添加为子视图,以便实际显示。

答案 1 :(得分:0)

viewDidLoad更改为:

- (void)viewDidLoad
{
    getname.text = @"hello";
    [super viewDidLoad];
}

无需分配IBOutlet

答案 2 :(得分:0)

如果您在xib中添加了标签,请注释初始化行。

- (void)viewDidLoad
{

//getname = [[UILabel alloc] init];


getname.text = @"hello";


[super viewDidLoad];

}

答案 3 :(得分:-1)

只需将此代码替换为此代码

- (void)viewDidLoad
{

    getname = [[UILabel alloc] init];


    getname.text = @"hello";

    [self.view addSubview:getname];

    [super viewDidLoad];

}

希望它可以帮助你..

此外,如果您在.h文件中使用IBOutlet,请不要为其分配内存,因为它会自动分配内存。

因此,如果您使用过IBOutlet,那么您的功能应该是

- (void)viewDidLoad
{

    getname.text = @"hello";

    [super viewDidLoad];

}