user2401050
user2401050

Reputation: 1

how to get button title using for loop

        //here   take a array with letters 
        _englishArray = [[NSMutableArray alloc]initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil];
        int i=0;
        float x=5,y=13;
        //add array elements as button title
        for (i=0; i< [_englishArray count]; i++) {
            button.tag=i+1;
            button = [UIButton buttonWithType:UIButtonTypeCustom];
            [button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
            [button setTitle:[_englishArray objectAtIndex:i] forState:UIControlStateNormal];
            button.frame= CGRectMake(x, y, 29, 30);
            button.titleLabel.textColor =[UIColor whiteColor];
            x= x+31;
            if (x==320 || x>310) {
                x=5;
                y=y+40;
            }
            [_keyboardImageView addSubview:button];
        }


        //   and i add the each button to _keyboardImageView and set title as _english arry elements ...and the get buttons curren title for this code...
    //here get the button title useing for loop

   for (int j=0;j<=[_englishArray count]; j++) {
   //  here get button from image view by useing tag
            butt = (UIButton *)[_keyboardImageView viewWithTag:j+1];
            NSLog(@"%@",butt.titleLabel.text);
        }

it prints null not give button title............ Note:i am using button.currentitle also how is it possible..why its displays null?

Upvotes: 0

Views: 808

Answers (3)

Tarun Sachdeva
Tarun Sachdeva

Reputation: 161

_englishArray = [[NSMutableArray alloc]initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil];
int i=0;
float x=5,y=13;
//add array elements as button title
for (i=0; i< [_englishArray count]; i++) {
    button.tag=i+1;
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];

    button.frame= CGRectMake(x, y, 29, 30);
    [button setBackgroundColor:[UIColor grayColor]];
    [button setTitle:[_englishArray objectAtIndex:i] forState:UIControlStateNormal];
    //button.titleLabel.textColor =[UIColor whiteColor];
    [_keyboardImageView addSubview:button];
    x= x+31;
    if (x==320 || x>310) {
        x=5;
        y=y+40;
    }

}

//here get the button title useing for loop
//   and i add the each button to _keyboardImageView and set title as _english arry elements ...and the get buttons curren title for this code....
for (int j=0;j<=[_englishArray count]; j++) {
    butt = (UIButton *)[_keyboardImageView viewWithTag:j+1];
    NSLog(@"Required Result is %@",butt.titleLabel.text);


}

Try it ,it will work...

Upvotes: 0

Tamnna
Tamnna

Reputation: 250

Make sure you define your button in for loop like

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

and than specify tag.

   button.tag=i+1;

You have to define button in for loop instead of .h file.

And for get title text

      for (int j=0;j<=[_englishArray count]; j++) {
  UIButton  *butt = (UIButton *)[_keyboardImageView viewWithTag:j+1];
    NSLog(@"%@",butt.titleLabel.text);
}

hope it will help you.

Upvotes: 0

rmaddy
rmaddy

Reputation: 318904

Since you set the title with setTitle:forState:, use titleForState: to get the title:

NSLog(@"title is %@", [butt titleForState:UIControlStateNormal]);

Of course this assumes that butt isn't nil. You need to assign the button's tag after you allocate the button:

button = [UIButton buttonWithType:UIButtonTypeCustom];
button.tag=i+1;

Upvotes: 1

Related Questions