У меня есть пользовательский UITableViewCell, который имеет пару кнопок.Когда весь код находился под одним контроллером представления, моя кнопка была объявлена так:
myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[myButton addTarget:self
action:@selector(myButtonAction:)
forControlEvents:UIControlEventTouchUpInside];
[myButton setTitle:@"Action" forState:UIControlStateNormal];
myButton.frame = CGRectMake(20, 80, 72, 37);
[self addSubview:myButton];
Прошлой ночью я переклассифицировал UITableViewCell, поэтому код стал таким:однако нажатие кнопки в любой ячейке приводит к тому, что действие воздействует только на первую строку таблицы, и я не уверен, почему.
Код действия:
UIButton *button = (UIButton *)sender;
UIView *contentView = [button superview];
UITableViewCell *cell = (UITableViewCell *)[contentView superview];
NSIndexPath *indexPath = [[self tableView] indexPathForCell:cell];
//do something with objectAtIndex:indexPath.row
Я понимаюОбычно для свойства тега устанавливается значение indexPath.row для использования UIButton в табличном представлении.Однако я использую два отдельных массива в источнике данных для заполнения двух разных разделов TableView, поэтому я не думаю, что это сработает.