2014-03-04 8 views
0

필자가 작성한 코드가 잘못되었음을 알고 있습니다. 하지만 나는이 같은 것을 원한다. 그것을하는 방법?addTarget에 여러 태그를 전달하는 방법 : action : forControlEvents?

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
int totalcout = 0; 
int passValue ; 
for(int j=0; j<5; j++{ 
    for(int i=0; i<5; i++) 
    { 
     totalcout++; 
     if(totalcount >1){ 
      break; 
     }else{ 
     passValue = i; 
     } 
    } 
    button.tag = j; 
    [button addTarget:self action:@selector(button:) forControlEvents:UIControlEventTouchUpInside]; 
} 


- (IBAction) button:(UIButton *)sender { 
    NSLog(@"tag numbers are %d", sender.tag); 

    detailViewController.mutableArray1 = [oneMutableArray objectAtIndex:sender.tag]; 
    detailViewController.mutableArray2 = [twoMutableArray objectAtIndex:passValue]; 
} 

질문에 대한 답변을 드리겠습니다. 미리 감사드립니다

+3

무엇이'tag1'과'tag2'입니까? –

+0

이 두 태그로 무엇을 달성하려고합니까? –

+0

다른 UIButton에 대해 동일한 IBAction 메서드를 호출하려면 IBAction 메서드의 태그를 비교해야합니다. 이게 너가 찾고있는거야? – user2071152

답변

3

질문이 있습니다 .. 직접 두 UIView 또는 모든 하위 클래스에 직접 할당 할 수 없습니다. 하지만 당신은 간접적으로 이 코드는

#define First_Tag 100 
    #define Second_Tag 200 
    -(void)createButton 
    { 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    button.tag = ((First_Tag*10000)+30000)+(Second_Tag*10); 
    [button addTarget:self action:@selector(button:) forControlEvents:UIControlEventTouchUpInside]; 
     } 

- (void) button:(UIButton *)sender 
{ 
    int intTag2 = ((sender.tag-30000)%10000)/10; 
    int intTag1 = ((sender.tag-(intTag2*10))-30000)/10000; 
    NSLog(@"tag numbers are %d and %d", intTag1, intTag2); 
    } 

내가 .. 태그를 인코딩하기 위해 몇 가지 큰 숫자를 사용했습니다이 희망 말에이 태그를 얻을 수 있도록 긴장을 달성하는 데 도움이 수도는 두 개의 태그를 할당하는 문제를 해결 달성 할 수

+0

@Akshay 감사합니다. 그것은 효과가있었습니다. :) –

+0

정말 어리석은 느낌 ... 정말 간단하고 두 개의 원하는 태그를 추가 한 다음 다른 태그를 하나씩 빼서 두 태그를 다시 가져옵니다 ... 세 번째 변수를 사용하지 않고 두 개의 정수를 교환하는 솔루션처럼 – jsetting32