Причина, по которой все ваши массивы пусты, заключается в том, что вы возвращаете после добавления любое значение в массив, который не является sec_0.Вы не хотите этих возвратов, так как они вырвутся из вашего цикла for.Попробуйте следующий код:
Вы также можете переключить массив, чтобы сэкономить несколько строк кода и улучшить читаемость.
-(NSMutableArray *)findButtonSelections:(UIButton *)button {
NSArray *array = [NSArray arrayWithObjects:sec_0, sec_1, sec_2, sec_3, sec_4, sec_5, sec_6, sec_7, sec_8, nil];
int tag = button.tag;
//BTW, this function will return all views, not just buttons
for (UIButton* bton in self.view.subviews) {
//So add this to make sure the view is a button
if([bton isKindOfClass:[UIButton class]]) {
[[array objectAtIndex:tag] addObject:bton];
}
}
return [array objectAtIndex:tag];
}
Если вы хотите сохранить код переключения, попробуйте это ниже, но я не рекомендую это.
-(NSMutableArray *)findButtonSelections:(UIButton *)button {
NSLog(@"Inside findButtonsSection");
int tag_No=buton.tag;
for (UIButton* bton in self.view.subviews) {
NSLog(@"Inside findButtonsSection2");
switch (tag_No) {
case 0:
[sec_0 addObject:bton];
NSLog(@"Number of buttons in array=%i",[sec_0 count]);
break;
case 1:
NSLog(@"Button tag No=%i",buton.tag);
[sec_1 addObject:bton];
break;
case 2:
NSLog(@"Button tag No=%i",buton.tag);
[sec_2 addObject:bton];
break;
case 3:
NSLog(@"Button tag No=%i",buton.tag);
[sec_3 addObject:bton];
break;
case 4:
NSLog(@"Button tag No=%i",buton.tag);
[sec_4 addObject:bton];
break;
case 5:
NSLog(@"Button tag No=%i",buton.tag);
[sec_5 addObject:bton];
break;
case 6:
NSLog(@"Button tag No=%i",buton.tag);
[sec_6 addObject:buton];
break;
case 7:
NSLog(@"Button tag No=%i",buton.tag);
[sec_7 addObject:bton];
break;
case 8:
NSLog(@"Button tag No=%i",buton.tag);
[sec_8 addObject:bton];
break;
default:
NSLog(@"nnnnnnnnnn");
}
}
return [array objectAtIndex:tag];
}