2009-10-20 6 views
1

내 앱에서 각 행에 셀을 표시하는 표가 있습니다. Interface Builder에서 버튼을 셀 위로 드래그하고 Dark Info 버튼으로 스타일을 지정한 다음 IBAction에 연결했습니다. 잘 작동합니다. 버튼의 셀이있는 테이블의 행에 따라 버튼이 다르게 동작하기를 원합니다. 어떻게 행 인덱스를 얻을 수 있습니까?UIButton의 행 인덱스를 찾는 방법은 TableCell입니까? (iPhone)

는 내가 객체 계층 구조의 기본적인 이해의 부족을 표시 할 수 있습니다 실현,하지만 난 문서를 확인합니다 (있는 tableView 위임 및 데이터 소스 방법에서 Sjakelien

답변

0

너희들이 나에게

감사 용서 바랍니다 !) 당신은 여러 가지 방법을 가지고,이에 가장 적합한 하나

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

구현에 드롭이 방법 말하기는 뭔가 같은

switch (indexPath.row) { 
     case 0: 
//set variable or do method based on row 0 (first row) 
      break; 
     case 1: 
//set variable or do method based on row 1 (second row) 
      break; 
     case 2: 
//set variable or do method based on row 2 (third row) 
      break; 
    }//and so on 
} 
+1

이 셀은 셀 내에서 버튼을 누르면하지 않는 경우, 선택 될 때 발생 내에서이 속성을 검색 할 수 있습니다. OP는 테이블 뷰 대리인/데이터 소스 메서드와는 별도의 메서드 인 IBAction을 만들고 연결했다고 말했습니다. – Tim

+0

네가 맞다. 셀을 선택했을 때 셀을 얻는 것과 같을 것입니다. 그러면보기가 해당보기의 하위보기에서 단추를 찾습니다. – JoePasq

1

데이터를 처음으로 설정하지 않은 경우 분명히하기 쉽지 않습니다. 가능한 경우 NSDictionary 단추가 키이고 값은 -tableView:cellForRowAtIndexPath:에서 셀을 반환 할 때마다 업데이트하는 인덱스 경로입니다. 이 같은 것 :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    ... 
    [indexDict setValue:indexPath forKey:theButton]; 
    return cell; 
} 



- (void) buttonPressed:(UIButton *)button { 
    NSIndexPath *indexPath = [indexDict valueForKey:button]; 
    ... 
} 
1

태그를 유지 관리 할 수 ​​있습니다. 버튼을 드래그 앤 드롭 할 때 인터페이스 빌드를 확인하면 버튼에 "태그"속성이 표시됩니다. 각 버튼마다 다른 값을 지정하십시오 (다른 행에 대해 다른 버튼이 있다고 가정합니다. 다른 행에 대해 동일한 셀 식별자가있는 경우이 솔루션이 작동하지 않음). 그리고 태그 값에 대한 이벤트 검사를받을 때. 나는 내 작품과 비슷한 문제가 있었고 NSArray는 각 버튼 태그에 대해 maintaing했다.

0

또 다른 방법은 뷰에서 UIButton의 기본 클래스를 변경하는 것입니다. 기본적으로 추가 된 NSInteger 행 @property가있는 UIButton을 확장하는 다른 클래스를 사용합니다 (@synthesize를 기억하십시오).

는 그런 다음 세포를 설치하는 동안이 속성을 설정합니다, 당신은 메시지 메소드

관련 문제