Мне лично не нравится IB, поэтому я рекомендую делать это программно!
Используйте NSArray для хранения ваших UIButton's. Индекс каждой кнопки row*COLUMNS+column
.
Установите для свойства тега значение BASE + index (BASE - произвольное значение> 0), чтобы можно было найти позицию кнопки: index=tag-BASE; row=index/COLUMNS; column=index%COLUMNS;
- (void)loadView {
[super loadView];
for (NSInteger row = 0; row < ROWS; row++) {
for (NSInteger col = 0; col < COLS; col++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[buttonArray addObject:button];
button.tag = BASE + row * COLS + col;
button.frame = ...;
[button addTarget:self action:@selector(didPushButton:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:button];
}
}
}
- (void)didPushButton:(id)sender {
UIButton *button = (UIButton *)sender;
NSInteger index = button.tag - BASE;
NSInteger row = index / COLS;
NSInteger col = index % COLS;
// ...
}