2015-03-24 63 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... 
}