#objective-c #ios #uitableview
#objective-c #iOS #uitableview
Вопрос:
Я искал stackoverflow, чтобы найти ответ, но не могу его найти.
У меня есть uibutton в uitableviewcell uitableview.
Я нажимаю на него. Когда я нажимаю на него, запускается функция. Внутри функции я пытаюсь получить indexpath uitableviewcell. indexpath должен быть тем, где кнопка, которую я нажал ранее, существует. Функция запускается, но я получаю нулевое значение при доступе к indexpath.
это код, который я использую
NSIndexPath *indexPath = [walltablefriends indexPathForCell:(UITableViewCell*)[[sender superview] superview]];
но это не работает, это дает мне «ноль». Любая помощь приветствуется!
Комментарии:
1. Как вы добавили кнопку в ячейку? Если в коде, вы добавили его в ячейку или в представление содержимого ячейки?
2. кроме того, просто проверка работоспособности: вы проверили при переходе через walltablefriends, что значение nil не равно нулю, верно?
3. Вот как я добавляю кнопку [cell.contentView addSubview:button1];
4. дрейлин, я думаю, ты прав, таблица walltablefriends равна нулю!!!
Ответ №1:
Ваше предположение о том, что супервизор кнопок является UITableViewCell, является опасным, например, если вы добавляете кнопку в свойство content view ячейки, тогда ее супервизор является UIView, а не представлением ячейки.
Я бы подклассировал свою ячейку tableview и сделал бы ее целевой для нажатия кнопки, и у меня был делегат для ячейки, который сообщает вашему контроллеру представления, что действие ячейки было выбрано, что-то вроде этого…
- (void)tableCellActionSelected:(MyCellClass *)aCell;
Затем ячейка может вызывать…
[cellDelegate tableCellActionSelected:self];
Ответ №2:
Стол был пуст, как упомянул Дрейлин в комментарии! Спасибо, чувак!