2012-11-25 2 views
-2

내 프로그램에 커스텀 버튼이 많아서 이름을 얻기 위해 메서드를 사용해야합니다. 나는 그들의 태그를 통해 그들의 이름을 얻는 방법을 알아 냈지만 그것의 포인터만을 가리킨다. 필요한 것은 문자열의 이름입니다. 내가 사용 Heres는 무엇UIButton 객체 이름을 문자열 형식으로 가져 오기

는 :

-(void)pickRandomToHide { 
    for (int check = 1; check <=5; check++) 
    { 
     int eventNumber = 1 + arc4random() % 43; 
     UIButton *pick; 
     pick = (UIButton *)[_mapImageView viewWithTag:eventNumber]; 
     [pick setAlpha: 0.5]; 
     NSString *buttonName; 
     buttonName = [pick currentTitle]; 
     NSLog(@"%@",buttonName); 
    } 
} 

NSLog는 '널'다섯 번을 제공합니다. 하지만 5 개의 버튼이 사라져 시작이 제대로 작동합니다.

답변

1

정확하게 이해하면 개체를 할당 한 변수 이름을 검색 할 수 있습니다.
컴파일하는 동안 변수 이름이 다른 기호로 대체되기 때문에 가능하지 않습니다.

그러나 포인터를 항상 추적 할 수 있기 때문에 필요하지 않습니다. 코드가 변수 이름에 따라 다르다면, 당신은 끔찍한 잘못을 저질렀습니다.

+0

아, 감사합니다. 대신 각 버튼의 제목을 설정해야합니다. 나는 아무 것도 잘못하지 않았으며, 단지 이벤트에서 그림을 바꾸기 위해 버튼이 필요합니다. 이미지는 단추 이름 + 끝에 색상이므로 개체 이름을 검색하여 색상을 추가 한 다음 setBackGroundImage를 사용하여 이미지를 사용한다고 생각했습니다. – PappaSmalls

1

버튼의 "이름"은 무엇을 의미합니까? 그 텍스트를 의미합니까? UIButton의 textLabel 속성을 사용하면 UILabel을 반환합니다. 그런 다음 해당 레이블의 text 속성을 단추의 제목으로 읽을 수 있습니다. 요약하면 :

NSString *buttonName = pick.titleLabel.text; 
+1

레이블은 'titleLabel'이라고하며이 코드는 currentTitle 메서드와 동일한 효과가 있다고 생각합니다. – Felix

+0

@Scott 아니요, 실제 UIButton의 개체 이름을 얻으려고합니다. 그래서 UIButton * button1; 나는 buttonName = @ "button1"을 원한다. 내보기에서. – PappaSmalls

관련 문제