2011-11-09 2 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

Spanglish와 (과) 관련한 상담을 받으실 수 있습니다. 'c :' –

+0

jeje, se me ha pasado, copaado 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];