2

준비된 대리인 및 데이터 소스 메서드가있는 여러 개의 UITableView가 있습니다. 하위 클래스를 사용하지만 해당 테이블의 didSelectRowAtIndexPath 메서드를 수동으로 편집하지 않고 동일한 두 번째 작업/처리기를 추가하는 방법? 내가 대신 테이블의 UIButtons를 사용하는 경우iOS. UITableView didSelectRowAtIndexPath 이벤트에 대해 동일한 두 번째 작업을 추가 하시겠습니까?

다음 솔루션입니다 :있는 UIButton의 자식 클래스 내부

: 내가 원하는대로

- (void)defaultInit { 

    [self addTarget:[PCFlurryManager manager] action:@selector(...) forControlEvents:UIControlEventTouchUpInside]; 
} 

- (void)dealloc { 

    [self removeTarget:[PCFlurryManager manager] action:@selector(...) forControlEvents:UIControlEventTouchUpInside]; 
    [super dealloc]; 
} 

그래서 나는 많은 시간과 같은 이벤트에 대한 addTarget을 사용할 수 있습니다. 그러나 테이블을 위해 유사한 것을 실현하는 방법?

답변

0

UITableViewTag을 할당 할 수 있습니다. 그런 다음 태그를 통해 표에 액세스 할 수 있습니다.

뭔가 같은 ..

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"Tag: %d",tableView.tag); 
    switch (tableView.tag) { 
     case 1: 
      //stuff for table 1 
     break; 

     case 2: 
      //stuff for table 2 
     break; 

     default: 
     break; 
    } 

} 
+0

는 이전 대답보다 더하지만 여전히 수동으로 – user2412679

+0

user2412679 @ 당신이 ** ** "당신은 여전히 ​​수동으로이 방법을 편집해야"무엇을 의미합니까이 방법을 수정하기 위해 필요한이 방법을 사용하여 더 나은 무엇입니까? –

+0

필자가 작성한 것처럼 여러 개의 테이블이 있고 각 테이블에는 고유 한 didSelectRowAtIndexPath가 있습니다. 그래서 그들을 제거하고이 메소드의 인스턴스를 다른 하나의 클래스에 복사하여 붙여 넣어야합니다. 예를 들어, 버튼을 사용할 때 "내부 수정"이벤트에 대한 자체 메소드를 변경하거나 복사 할 필요가 없습니다. 클래스를 변경할 수 있기 때문입니다. 그래서 더블 클릭하지 않고 대리자를 재 할당하지 않고 별도로 새 코드를 작성할 수 있습니다 – user2412679

0

didSelectRowAtIndexPath 당신에게이 방법이있는 tableview에 대한 호출임을 표시 객체 (jQuery과 *)있는 tableView를 제공합니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     if(tableView==YourFirstTableviewObject) { 
        //write your code for first 
     } 
     else if(tableView==YourSecondTableviewObject) { 
        //write your code for second 
     } 
     else if(tableView==YourThirdTableviewObject) { 
        //write your code for Third 
     } 
     .......... 
    } 
+0

1)이 대답에서이 방법을 편집합니다. 2)이 테이블의 객체가 다양한 클래스에 있으면 많은 코드가 발생합니다. – user2412679