2011-11-09 51 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];