1
Добавьте этот ivar в свой заголовочный файл:
NSMutableArray *buttonArray;
2
Инициализируйте этот массив в init вашего файла .m:
buttonArray = [NSMutableArray array];
[buttonArray retain];
3
Измените цикл for следующим образом:
for (int i = 0; i < 9; i++)
{
UIButton* btn = [[[UIButton alloc] initWithFrame:CGRectMake(55, i*(indexHeight+indexSpacing), indexWidth, indexHeight)] autorelease];
btn.tag = i;
[btn setBackgroundImage:nil forState:UIControlStateNormal];
[btn addTarget:self
action:@selector(buttonTapped:)
forControlEvents:UIControlEventTouchUpInside];
// LABELS
UILabel *btnTitle = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, indexWidth, indexHeight)] autorelease];
btnTitle.text = @"Empty";
UILabel *pageTitle = [[[UILabel alloc] initWithFrame:CGRectMake(190, 0, 30, indexHeight)] autorelease];
pageTitle.text = @"x";
[indexView addSubview:btn];
[btn addSubview:btnTitle];
[btnTitle release]; //avoiding leaks
[btn addSubview:pageTitle];
[pageTitle release]; //avoiding leaks
//The changes are here.....
[buttonArray addObject:btn];
[btn release];
}
4
Для доступа к кнопке из вашего массива выполните (например, кнопку 5):
UIButton *thisButton = (UIButton *)[buttonArray objectAtIndex:5];
5
Делайте что хотите с этой кнопкой:)
PS:
Вы размещаете эти объекты btn внутри цикла for (и кажется, что они не ivars).
Когда вы выйдете за цикл for, они потеряют область видимости, поэтому вы все равно не сможете получить к ним доступ.
Вышеупомянутый метод использования NSMutableArray решает эту проблему также, как теперь вы создали btn и добавили их в массив, который является ivar, так что вы не потеряете область действия вне цикла for.
Кроме того, вам, вероятно, следует создать подкласс UIButton, если вы хотите иметь собственные подпредставления на нем.