2011-09-02 74 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];