Я делаю приложение iOS, основанное на представлении таблицы. В каждой ячейке таблицы видны четыре кнопки, выровненные внизу. У меня есть класс ячеек, который довольно стандартный, и feedController для обработки таблицы и установки всех элементов ячейки.Управление взаимодействием кнопки dequeueReusableCell в iOS Swift
Все работает нормально, но я не могу понять, как обращаться с кнопками в ячейке. Я могу жестко закодировать его в свой класс ячеек, но тогда каждые три ячейки имеют одинаковое взаимодействие. Есть ли способ передать функцию нажатия кнопки из класса ячеек в контроллер? Я попытался проверить состояние с контроллера, и это не сработало.
Использование addTarget: действие: forControlEvents: в cellForRowAtIndexPath, и установить цель в себя (которая будет контроллером), а затем реализовать метод действия кнопки в контроллере. – rdelmar
Проблема с addTarget: action: forControlEvents заключается в том, что действие получает только кнопку, поэтому вы не знаете, в какой ячейке. Вы также жестко кодируете понимание того, как ячейка представляет данные в контроллере табличного представления. Лучше, чтобы ваша ячейка обеспечивала блокировку или делегирование вызовов, вы можете контролировать, какую информацию может передавать ячейка. Или просто передайте ячейку в блоке/делегате. См. Мой ответ. –