У меня +1 ответ Фрая, но я просто извлекаю код с другого сайта, чтобы сделать SO более полным: Ответ в том, что вам нужно accessoryButtonTapped .... вызов не будет сделан автоматически, так какдля встроенной детализации-раскрытия, поэтому вы должны сделать это сами с целью кнопки.
Переводя код ссылки на ваш пример выше, добавьте эту строку после setImage:
[myAccessoryButton addTarget:self action:@selector(accessoryButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
Затем добавьте это позже:
- (void)accessoryButtonTapped:(id)sender event:(id)event
{
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition];
if (indexPath != nil) {
[self tableView: self.tableView accessoryButtonTappedForRowWithIndexPath: indexPath];
}
}
(дословно скопировано с эта ссылка )
Обратите внимание, что это предполагает, что кнопка создается вUITableViewController (в моем случае я создаю его в пользовательской ячейке, поэтому ссылки немного отличаются)
Объяснение: accessoryButtonTapped - это метод пользовательской цели для нашей пользовательской кнопки.Когда кнопка нажата («TouchUpInside»), мы находим indexPath ячейки в точке, в которой произошло нажатие, и вызываем метод, который обычно вызывается табличным представлением.