2011-09-02 75 views
3

我已經動態地創建了20個按鈕,並且我得到了所有按鈕的標記值。在iPhone中獲取按鈕標記值

但我需要知道如何使用該標記值。

我需要使用標籤值按下每個按鈕的信息。
那麼,我該如何使用這些標籤值呢?

回答

1
- (IBAction)buttonPressed:(id)sender { 
    UIButton selectedButton = (UIButton *)sender; 
    NSLog(@"Selected button tag is %d%", selectedButton.tag); 
} 
3

您可以使用該標籤獲取您的按鈕的引用。例如,您已將UIButton s添加到UIView *mainView。要獲得參考按鈕,你應該寫下列:

UIButton *buttonWithTag1 = (UIButton *)[mainView viewWithTag:1]; 
+0

如果在任何視圖中沒有添加Button,那麼可以使用標籤值檢索該按鈕? – NiKKi

+0

@NiKKi「如果沒有添加」...「可以檢索到」...你想要檢索什麼? – Nekto

7

你需要設置每個按鈕的目標行動。

[button setTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside]; 

然後實現someMethod:這樣的:

- (void)someMethod:(UIButton *)sender { 
    if (sender.tag == 1) { 
     // do action for button with tag 1 
    } else if (sender.tag == 2) { 
     // do action for button with tag 2 
    } // ... and so on 
} 
4

爲什麼你需要使用tag拿到按鈕。您可以直接從其操作方法獲取按鈕引用。

- (void)onButtonPressed:(UIButton *)button { 

    // "button" is the button which is pressed 
    NSLog(@"Pressed Button: %@", button); 

    // You can still get the tag 
    int tag = button.tag; 
} 

我希望你已經添加了按鈕的目標動作。

[button addTarget:self action:@selector(onButtonPressed:) 
      forControlEvents:UIControlEventTouchUpInside]; 
1
usefully we use btn tag if You Write One Function For (more than one) Buttons .in action if we want to write separate Action For button at that situvation we use btn tag.it can get two ways 

    I) case sender.tag 
    //if we have four buttons Add,mul,sub,div having Same selector and add.tag=10 
    mul.tag=20,sub.tag=30,div.tag=40; 
    -(IBAction) dosomthing:(id)sender 
    { 
    int x=10; 
    int y=20; 
    int result; 
    if(sender.tag==10) 
    { 
    result=x+y; 

    }else if(sender.tag==20) 
    { 
    result=x*y; 

    }else if(sender.tag==30) 
    { 
    result=x-y; 

    }else if(sender.tag==40) 
    { 
    result=x/y; 

    } 
    NSLog(@"%i",result); 

    } 

2)Case 
UIButton *btn=[self.view viewWithTag:10]; 
then you got object of add button uyou can Hide It With btn.hidden=YES; 
3

設置的標籤是這樣的:

for (createButtonIndex=0; createButtonIndex<buttonsCount; createButtonIndex++) 
    { 
buttonCaps.tag=createButtonIndex; 
} 

而且方法添加到陷阱的標籤: -

-(void)buttonsAction:(id)sender 
{ 
    UIButton *instanceButton = (UIButton*)sender; 

switch(instanceButton.tag) 
{ 
case 1(yourTags): 
//Code 
break; 
case 2: 
//Code 
break; 
} 
} 

希望這有助於!

0
UIButton *btn = (UIButton *)[mainView viewWithTag:button.tag];