2015-03-24 62 views
0

我有一个动态创建按钮的循环。创建一个能够检查按钮标题的功能

for (int b = 0; b < _currentPlayerTeams.count; b++) 
    { 
     HNTeamObject *team = _currentPlayerTeams[b]; 
     CGFloat buttonY = 168 + ((b + 1) * distanceBetweenButtons) - 23; 

     NSString *buttonTitle = [NSString stringWithFormat:@"%@ %@",team.teamName, team.seriesName]; 

     UIButton *button = [[UIButton alloc] init]; 
     button = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [button setBackgroundImage:[UIImage imageNamed:@"images.png"] forState:UIControlStateNormal]; 
     button.titleLabel.textColor = [UIColor blackColor]; 
     [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
     button.backgroundColor = [UIColor clearColor]; 
     [button addTarget:self 
        action:@selector(chooseTeamOne:) 
     forControlEvents:UIControlEventTouchUpInside]; 
     [button setTitle: buttonTitle forState:UIControlStateNormal]; 
     button.titleLabel.text = (@"%@", buttonTitle); 
     button.frame = CGRectMake(labelAndButtonX, buttonY, 268.0, 46.0); 
     [self.view addSubview:button]; 
    } 

我需要做一个函数,可以作为选择器,为每个按钮创建并查看按钮的标题。由于我在循环中制作按钮,所以它们是本地的,不会出现在我创建的另一个函数中。任何帮助,将不胜感激。我提前道歉,因为我对编码非常陌生,而且对于正在发生的事情没有很好的把握。谢谢。

回答

1

当按下按钮时,每个按钮都会调用chooseTeamOne:函数,所以我假设您想在该方法中获得按钮标题。

要做到这一点,使用的UIButton的title属性:

NSLog(@"%@", button.currentTitle); 

这将记录按钮的当前标题。需要注意的是,我引用的是“按钮”,它是调用chooseTeamOne方法的UIButton实例。我假设chooseTeamOne将UIButton按钮作为参数。

如果你的方法有一个“身份证”作为参数,您将需要发送的对象转换为一个UIButton这样的:

- (IBAction)chooseTeamOne:(id)sender { 
     UIButton *button = (UIButton *)sender; 
     NSString *buttonTitle = button.currentTitle; 
    } 
+0

我知道如何登录此,不知道如何在chooseTeamOne方法的更远处执行此操作,因为UIButton - 按钮是本地创建的,并且它不会在chooseTeamOne方法中识别此操作。 ChooseTeamOne是 - (IBAction)chooseTeamOne(id)发件人 – aviators54 2015-03-24 22:40:34

+0

很简单,谢谢。我真的很感激它! – aviators54 2015-03-24 22:43:06

0

你需要一个单独的选择器返回的称号?如果没有的话..

我想象你chooseTeamOne功能是沿着线的东西:但是我

-(IBAction)chooseTeamOne:(id)sender { 
    ...do things... 
} 

在这种情况下,只需添加

-(IBAction)chooseTeamOne:(id)sender { 
    UIButton *button = sender; 
    NSString *stringThatYouWant = button.titleLabel.text; //get the text on the button 
    ...do things... 
}