2013-06-13 3 views
-6

함수에 UIlabel을 어떻게 전달할 수 있을까요?함수를 통해 UILabel 전달하기

테이블에서 UILabel 텍스트를 제공하는 함수를 작성했지만 이제는 함수 헤드로 전달 된 UIlabel 함수를 실행하려고합니다. 텍스트 또는 int과 같이 할 수 있습니다. 포인터가 필요합니까, 아니면 정상적인 방법으로 레이블을 전달할 수 있습니까?

-(void)giveText:(NSString) *textinsert 
{ 
    label1.text=textinsert; 
} 

배열 안에 모든 레이블을 저장하고 배열을 실행할 수 있습니까?

+1

희망 : ..(NSString) * textinsert'는 오타입니다. – Popeye

+0

나는 그것을 서둘러 번역했다. – WildWorld

답변

-1

당신이있는 NSString 예를 들어 같은 방식으로 라벨을 통과 할 수있는이

NSMutableArray *arr=[[NSMutableArray alloc]init]; 

//label Creation 
UILabel *lbl=[[UILabel alloc]init]; 

//add into array 
[arr addObject:lbl]; 


// get label From array one by one 
for (UILabel *lbl in arr) { 
//pass label to function 
    [self passLabel:lbl]; 
} 

-(void)passLabel:(UILabel *)lbl 

{ 
// do here 
} 
+0

thnx :)이 작업은 [self passLabel : lbl]; 적어도 os6에서는 작동하지 않지만 대신 lbl.text를 사용합니다. – WildWorld

+0

[self passLabel : lbl]의 문제점은 무엇입니까? – Kalpesh

+2

왜'UILabel'을 배열에 넣은 다음'for loop'에서 꺼내는 것이 무의미한 것 같습니까? – Popeye

-2

을보십시오.

단순히 ot의 텍스트를 변경하려는 경우 레이블 기능을 사용해서는 안됩니다. 그냥 당신은 내가 전혀 무슨 일이 일어나고 있는지 이해 믿지 않는 넣어 가지고 의견을 읽고 솔직히 문자열

label.text = [self getLabelText]; 
- (NSString *) getLabelText { 
    NSString *text = @"text"; 
    return text; 
} 
+0

나는 그것의 값을 변경하려면 함수에 UI 개체를 전달하는 것이 현명하지 않다고 생각해. 코드를 덜 재사용 할 수있게 만들고 OOP 방식이 아닙니다. 훨씬 더 편리하게 전달 레이블보다 문자열을 반환하고 그곳의 가치를 변경하는 함수를 만드는 것입니다. 내일 그는 label을 textView로 변경하기로 결정할 것이고, 함수 프로토 타입을 변경하고 함수 본문을 변경해야 할 것입니다. 다시이 문자열을 label 및 textView에 반환해야 할 수 있습니다. 넌 뭐할거야? 두 가지 기능을 만든다. 텍스트보기를 변경하려면 레이블을 두 번째로 변경 하시겠습니까? – Roma

+0

끝으로 내 의견보기) 2 가지 예가 있습니다. 나는이 상황을 정확하게 의미한다. 그가 조언을 필요로하기 때문에 사람은 질문을하고 있습니다, 나는 방금 조언했습니다.그걸 따라하든 안 했든 물어 보는 사람에게 도움이된다고 결정한 것입니다. – Roma

+0

질문의 범위를 완전히 벗어났기 때문에 여기에서 자세히 실행하지 않을 것입니다. 그래서 단 하나의 단어 - MVC. – Roma

1

을 반환 함수를 만듭니다.

이 은 구문 오류가 발생하지 않으며이 방법은 -(void)giveText:(NSString *)textinsert이어야합니다.하지만 문제는 아닙니다.

나는 당신에게 당신이 UILabel을이 방법에 전달하기를 원하는지 이해하고 있습니다. 그래서 당신이하고 싶은 것은

그래서

- (void)someMethod 
{ 
    UILabel *label1 = [[UILabel alloc] init]; 
    [self giveText:label1]; 
} 

- (void)giveText:(UILabel *)label 
{ 
    // Do what ever with label. 
} 

같은 것이 무슨이다?

우리는 우리가 우리가 만든 UILabel 전달 [self giveText:label1];을 수행하여 someMethod에서이 메소드를 호출 매개 변수로 UILabel 걸리는 방법 giveText:을 만들었습니다.

+0

thnx. 이 훌륭한 작품 – WildWorld

관련 문제