Использование tag
позволяет определить, какая кнопка в какой ячейке была нажата.
- (UITableViewCell *)tableView:(UITableView *)tableViews cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//init identifier
if (cell ==nil)
{
//load nib file
}
buttonName.tag = indexPath.row;
[buttonName addTarget:self action:@selector(showName:) forControlEvents:UIControlEventTouchUpInside];
buttonInfo.tag = indexPath.row;
[buttonInfo addTarget:self action:@selector(showInfo:) forControlEvents:UIControlEventTouchUpInside];
}
}
-(void) showName:(UIButton*)button{
int row = button.tag; //you know that which row button is tapped
}
-(void)showInfo:(UIButton*)button{
int row = button.tag;//you know that which row button is tapped
}
---------------- РЕДАКТИРОВАТЬ -------------
Если вам нужно узнать, какая кнопка нажата на основе строки и раздела , вы можете попробовать это ниже.(в методе cellForRowAtIndexPath:
)
int tag = (indexPath.row+1)+(indexPath.section*100);
buttonName.tag = tag;
Когда кнопка на
row = 5, section = 0, затем tag = 6.
row = 4,раздел = 3, затем тег = 305.
строка = 0, раздел = 11, затем тег = 1101.
ограничение , строка не может превышать 99.и не используйте положительный тег для другого просмотра.если вам нужно использовать тег, попробуйте отрицательный.(-1, -9, -100).
, поэтому отсюда вы можете рассчитать заднюю строку и секцию indexPath.используя это:
-(NSIndexPath*)getIndexPathFromTag:(NSInteger)tag{
/* To get indexPath from textfeidl tag,
TextField tag set = (indexPath.row +1) + (indexPath.section*100) */
int row =0;
int section =0;
for (int i =100; i<tag; i=i+100) {
section++;
}
row = tag - (section*100);
row-=1;
return [NSIndexPath indexPathForRow:row inSection:section];
}
как использовать:
-(void)showInfo:(UIButton*)button{
NSIndexPath *indexPath = [self getIndexPathFromTag:button.tag];
int row = indexPath.row;
int section = indexPath.section;
}