2012-02-26 3 views
1

내 응용 프로그램에서 단추가있는 사용자 지정 테이블보기 셀을 만들었습니다. 각 버튼을 누를 때마다 특정 작업을 수행해야합니다. 지금은 버튼에 액션을 추가 할 수 있으므로 탭 한 상태에서 액션이 호출되지만 버튼이 해당 액션을 담당하는지 식별 할 수 없습니다. 버튼에 대한 사용자 이벤트를 기반으로 다른 작업을 수행하려면 어떻게해야합니까? 내가 설정 "태그"속성과사용자 지정 UITableViewCell의 각 UIButton에 대한 별도의 작업

[sender tag] 

를 사용하여 확인하여 일반적인 방법으로이 작업을 수행하지만,이 경우 몰라요 수 있습니다. 미리 감사드립니다.

+0

셀의 어떤 단추를 눌렀는지 또는 단추가 있던 셀을 모르는 것이 문제입니까? – jrturton

+0

@jrturton 어떤 버튼이 두드려 졌는지 알지 못합니다. 그리고 버튼이 테이블 셀을 완전히 가리고 있기 때문에, 셀을 만질 수 없었습니다. – rakeshNS

답변

0

예 :

[button1 addTarget: target action: @selector(action1) forControlEvents: UITouchUpInside]; 
[button2 addTarget: target action: @selector(action2) forControlEvents: UITouchUpInside]; 
[button3 addTarget: target action: @selector(action3) forControlEvents: UITouchUpInside]; 
0

가 루프를 확인하고 각각의 버튼 증분 태그를 할당 모든 버튼 얻을 (뿐만 아니라 타겟은보기 제어 한 방법 (로우 가능한 수에 따라) 동일한 선택자).

호출 된 메소드에서 태그 번호를 추출하고 이에 필요한 조치를 수행하십시오.

0

cellForRowAtIndexPath의 셀에 단추를 추가하고있는 것 같습니다.

테이블에 섹션이 하나만 있으면 쉽습니다. 간단히 cellForRowAtIndexPath을 수정하십시오.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    // .. create cell 

    // .. add button 

    myButton.tag = indexPath.row; 
    [myButton addTarget: target action: @selector(buttonClicked:) forControlEvents: UITouchUpInside]; 

    return cell; 
} 

-(void) buttonClicked:(id)sender { 

    NSLog (@"user clicked button in row %d", [(UIButton *)sender tag]); 

    // ..do your stuff here 
} 
관련 문제