UIbutton и проблема действий - PullRequest
1 голос
/ 27 июля 2011

Я хочу создать некоторую кнопку UI динамически.И отобразить номер тега.Таким образом, я успешно сделал кнопки, я нажал первую кнопку, и она показала «ноль» для тега, затем я нажал вторую кнопку, после чего программа потерпела крах.Я не уверен, какая часть моего кода пошла не так.

Вот мой код:

NSMutableArray *buttonsArray = [[NSMutableArray alloc] initWithObjects:nil];

for(int i = 0; i < [someArray count]; i++)
{
      button = [[UIButton alloc] initWithFrame:CGRectMake(btnX,btnY,btnW,btnH)];

    button.tag = i;

    [buttonsArray addObject:button];

    [[buttonsArray objectAtIndex:i] addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

    button.titleLabel.text = [NSString stringWithFormat:@"Click it"];

    [self.view addSubview:button];

    btnY = btnY + 120;
}

-(IBAction) buttonPressed:(id)sender {

UIButton *btn = (UIButton *)sender;
NSLog(@"%@", btn.tag);

}

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Это потому, что tag - это NSInteger, а вы делаете

NSLog(@"%@", btn.tag);

Вы должны использовать %ld в качестве спецификатора формата. У

NSLog(@"%ld", btn.tag);
0 голосов
/ 27 июля 2011

Изменить код как NSLog (@ "% @", self.but.tag); или же NSLog (@ "% @", self.but.tag.me)

...