2011-11-09 46 views
0

我有一个问题,这个基本代码:Hidding的UILabel上初始化

-(id)init{ 
self = [super init]; 
if(self){ 
    self.mensaje = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)]; 
    [self.mensaje setText:@"He vuelto"]; 

    [self.view addSubview:self.mensaje]; 
    [self.mensaje setHidden:YES]; 
} 
return self; 
} 

所有的代码工作正常,但[self.mensaje setHidden:YES];。该标签始终显示在开始处。

我希望能帮助我,这是基本的,但必要的!

祝你好运!

+0

你可以尝试把它藏在'viewWillAppear'或'viewDidLoad'。 – dasdom

+0

Amíme encanta que tucódigoestéen Spanglish。 'c:' –

+0

jeje,se me ha pasado,lo he copiado directamente。非常感谢你!杰杰奥 – SantiagoRodriguez

回答

4

此代码位于错误的地方。您不应该在视图控制器的初始化程序中创建和使用视图(假设上述代码位于视图控制器类中)。

代替,做到以下几点:

- (id)init 
{ 
    self = [super init]; 
    if (self) { 
     // init any state other than views 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.mensaje = [[UILabel alloc] initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)]; 
    [self.mensaje setText:@"He vuelto"]; 
    [self.view addSubview:self.mensaje]; 
    [self.mensaje setHidden:YES]; 
} 

这还假定您正在使用ARC。如果没有,你需要添加autorelease如下:

self.mensaje = [[[UILabel alloc] initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)] autorelease];