2013-03-05 2 views
-1

ios의 uibutton 클릭시 값을 전달할 여러 기사를 확인했습니다. 하지만 일반적으로 태그 속성을 대체 태그로 사용합니다.iOS의 UIButton 클릭시 문자열 값 전달

하지만 follwing을 해결책을 발견 :

UIButton *btnComLike=[[UIButton alloc] init]; 

[btnComLike setFrame:CGRectMake(127, 20, 30, 15)]; 
[btnComLike addTarget:self action:@selector(btnCommentLike_click:) forControlEvents:UIControlEventTouchUpInside]; 
[btnComLike setTitle:@"Like" forState:UIControlStateNormal]; 
[btnComLike setTitle:@"my any string value" forState:UIControlStateReserved]; 

및 핸들러 측 : 하나의 사용이 상태 UIControlStateReserved을하고에

-(void)btnCommentLike_click:(id)sender 
{ 
NSLog(@"%@",[sender titleForState:UIControlStateReserved]); 

} 

이 가능한 솔루션입니다 여기에 내가 생각합니다.

이 기법을 사용하는 데는 단점이 있습니까?

예인 경우 무엇이 잘못 되었습니까?

+0

전달 버튼 제목? – NANNAV

+0

예 @NANNAV,하지만 UIControlStateReserved 상태 ... – iChirag

+2

@Downloadmore, 예약 됨은 예약되어 있음을 의미하며 사과는 아마도 예약되지 않은 것입니다. – vikingosegundo

답변

6

나를 위해이 솔루션은 MVC를 치고 열악한 버튼을 잘못 사용하는 것과 같습니다.

작업 방법에서 작업하려는 객체를 ivar (인스턴스 변수, 멤버 변수)에 쓴 다음 거기에 액세스해야합니다.

는 귀하의 솔루션은 또한 docs에서 불법으로 간주 될 수 : 내부 프레임 워크 사용을 위해 예약

UIControlStateReserved
제어 상태 플래그를.

+0

Yap, XY ** 및 ** 디자인 문제, gulfed (3 줄의 코드에서 두 가지 큰 개념상의 실수를 저지를 수 있습니까?) –

+1

+1 이것은 절대적으로 정확합니다. 좋은 대답. – Popeye

관련 문제